php,更改数组中的键?

时间:2013-07-20 16:19:06

标签: php arrays

嗨我有一个像下面这样的数组。

  $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);

但如果“我的”是一个值,而不是一个键,那么这只是将“我的”替换为“你的”。

那我该怎么改变钥匙?

感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

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

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

这将添加一个新元素,其中新键将取消设置旧元素

希望这有帮助

答案 2 :(得分:0)

你可以试试这个:

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

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