是否可以在密钥生成后编辑密钥?如何编辑数组的密钥?
我知道你可以使用不同的键创建一个数组,但是我不能在php网站上看到关于编辑后者的任何内容。
原始数组:
Array
(
[0] => first
[1] => color
)
我想什么:
Array
(
[newName] => first
[1] => color
)
是否可以在密钥生成后编辑密钥?如何编辑数组的密钥?
我知道你可以使用不同的键创建一个数组,但是我不能在php网站上看到关于编辑后者的任何内容。
原始数组:
Array
(
[0] => first
[1] => color
)
我想什么:
Array
(
[newName] => first
[1] => color
)
如果你想改变一个项目的关键,您必须用新的密钥和unset()
旧的设定值(此技术改变了数组的顺序):
$arr['newName'] = $arr[0];
unset($arr[0]);
或使用一个包装,内放弃循环,并允许你修改键,因为这样的:
function array_change_key(&$array, $search, $replace) {
$keys = array_keys($array);
$values = array_values($array);
// Return FALSE if replace key already exists
if(array_search($replace, $keys) !== FALSE) return FALSE;
// Return FALSE if search key doesn't exists
$searchKey = array_search($search, $keys);
if($searchKey === FALSE) return FALSE;
$keys[$searchKey] = $replace;
$array = array_combine($keys, $values);
return TRUE; // Swap complete
}
$array = array('foo', 'bar');
$array['newName'] = $array[0];
unset($array[0]);
这几乎是你唯一可以做的事情。
这里有一个替代的,简单的方法,这可能是相当有效的,只要你做你的重新输入每个阵列在一次电话中:
这改变了数组的顺序。 – 2010-02-08 05:30:19