1

嗨,我有一个如下所示的数组。

  $arr = Array ( [My_name] => Sam [My_location] => United_Kingdom [My_id] => 1 );

我试图从

  My_name, My_Location, My_id

  Your_name, Your_Location, Your_id

所以最终的数组看起来像

  Array ( [Your_name] => Sam [Your_location] => United_Kingdom [Your_id] => 1 );

我希望像 str_replace 这样的东西会起作用

   $arrnew = str_replace("My","Your",$arr);

但这只是在“My”是一个值而不是键的情况下将“My”替换为“Your”。

那么我将如何更改密钥?

谢谢你的帮助。

4

3 回答 3

5
$arrnew = array_combine(str_replace("My","Your",array_keys($arr)), $arr);
于 2013-07-20T16:24:25.323 回答
2

您无法就地更改密钥,但您可以执行以下操作:

foreach($arr as $key => $value) {
    $arr[str_replace("My","Your",$key)] = $value;
    unset($arr[$key]);
}

这将添加一个带有新键的新元素,取消旧元素的设置

希望这可以帮助

于 2013-07-20T16:22:32.913 回答
0

你可以试试这个:

foreach($arr as $key => $val){
    $newkey = str_replace("My","Your",$key);
    unset($arr[$key]);
    $arr[$newkey] = $val;
}

演示:http ://codepad.org/3vKkMAXx

于 2013-07-20T16:26:21.960 回答