slimboy007 Posted June 21, 2010 Share Posted June 21, 2010 i am trying to create a function to replace all instances of 'sam' with 'paul' within the values of the following array. can someone give me a bit of a hand? $name = array('key1'=>'sam1', 'key2'=>'value2', 'key3'=>array('sam','sam1','sam2')); $str1 = “sam"; $str2 = “paul”; foreach ($name as $value) { if($value == $str1){ $value = $str2;} } Quote Link to comment https://forums.phpfreaks.com/topic/205397-how-do-you-change-elements-in-an-array/ Share on other sites More sharing options...
trq Posted June 21, 2010 Share Posted June 21, 2010 $str1 = "sam"; $str2 = "paul"; foreach ($name as $key => $value) { if ($value == $str1) { $name[$key] = $str2; } } You could also use array_map. Quote Link to comment https://forums.phpfreaks.com/topic/205397-how-do-you-change-elements-in-an-array/#findComment-1074893 Share on other sites More sharing options...
phpchamps Posted June 21, 2010 Share Posted June 21, 2010 what thorpe suggested will work only for single dimension array. Try this:- $name = array('key1'=>'sam', 'key2'=>'value2', 'key3'=>array('sam','sam1','sam2')); function replaceVal(&$item){ $search = 'sam'; $replace = 'paul'; if($search == $item){ $item = $replace; } } array_walk_recursive($name, "replaceVal"); echo "<pre>"; print_r($name); echo "</pre>"; Quote Link to comment https://forums.phpfreaks.com/topic/205397-how-do-you-change-elements-in-an-array/#findComment-1074901 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.