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 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 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 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.