I have an array like
$arr = array('key1' => 'hello');
现在我需要更换密钥,有没有什么方法可以做到这一点?
我知道可以这样做:
$arr['key2'] = $arr['key1']; unset($arr['key1']);
但是,还有其他方法吗?
你的做法是正确的。在关联数组中,你不能修改一个键,只能添加或删除键。如果你发现自己需要频繁进行“键修改”,那么就需要退一步,评估是否在解决问题时使用了最合适的数据结构。
如果你有点疯狂,你可以编写一个函数。
function changeKey(array $array, $oldKey, $newKey) {
if ( ! array_key_exists($array, $oldKey)) {
return $array;
}
$array[$newKey] = $array[$oldKey];
unset($array[$oldKey]);
return $array;
}
如果原始键不存在,则此操作将不起作用。它还会覆盖现有的键。