是否可以在密鑰生成後編輯密鑰?如何編輯數組的密鑰?
我知道你可以使用不同的鍵創建一個數組,但是我不能在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