This question already has an answer here:
Hi I have an array like below.
$arr = Array ( [My_name] => Sam [My_location] => United_Kingdom [My_id] => 1 );
And im trying to change the keys from
My_name, My_Location, My_id
to
Your_name, Your_Location, Your_id
So the final array would look like
Array ( [Your_name] => Sam [Your_location] => United_Kingdom [Your_id] => 1 );
I was hoping something like str_replace would work
$arrnew = str_replace("My","Your",$arr);
But this is only replacing "My" to "Your" if "My" is a value, not a key.
So how would I change the keys?
Thanks for any help.
</div>
$arrnew = array_combine(str_replace("My","Your",array_keys($arr)), $arr);
you cannot change the keys in-place but you can do something like this:
foreach($arr as $key => $value) {
$arr[str_replace("My","Your",$key)] = $value;
unset($arr[$key]);
}
This will add a new element with the new keys unsetting the old element
Hope this helps
You could try this:
foreach($arr as $key => $val){
$newkey = str_replace("My","Your",$key);
unset($arr[$key]);
$arr[$newkey] = $val;
}