我有一个类似
的数组$arr = array('key1' => 'hello');
现在我需要更改密钥,有什么原因可以实现这个
我知道我可以这样做:
$arr['key2'] = $arr['key1']; unset($arr['key1']);
但是,还有其他方法吗?
答案 0 :(得分:3)
你这样做的方法是正确的。您无法修改关联数组中的键。您只能添加或删除密钥。如果您发现自己需要进行许多“关键修改”,则可能需要退后一步,评估您是否正在为您的问题使用最合适的数据结构。
答案 1 :(得分:1)
如果你有点疯狂,你可以写一个函数。
function changeKey(array $array, $oldKey, $newKey) {
if ( ! array_key_exists($array, $oldKey)) {
return $array;
}
$array[$newKey] = $array[$oldKey];
unset($array[$oldKey]);
return $array;
}
如果原始密钥不存在,则无效。它还会覆盖现有密钥。
答案 2 :(得分:0)