2010-02-08 62 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

這裏有一個替代的,簡單的方法,這可能是相當有效的,只要你做你的重新輸入每個陣列在一次電話中:

​​