2010-02-08 28 views
1

是否可以在密钥生成后编辑密钥?如何编辑数组的密钥?

我知道你可以使用不同的键创建一个数组,但是我不能在php网站上看到关于编辑后者的任何内容。

原始数组:

Array 
(
    [0] => first 
    [1] => color 
) 

我想什么:

Array 
(
    [newName] => first 
    [1] => color 
) 

回答

2

如果你想改变一个项目的关键,您必须用新的密钥和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 
} 
0
$array = array('foo', 'bar'); 

$array['newName'] = $array[0]; 
unset($array[0]); 

这几乎是你唯一可以做的事情。

+2

这改变了数组的顺序。 – 2010-02-08 05:30:19

1

这里有一个替代的,简单的方法,这可能是相当有效的,只要你做你的重新输入每个阵列在一次电话中:

​​