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;} } 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. 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>"; 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
Archived
This topic is now archived and is closed to further replies.