可能重複:
In PHP, how do you change the key of an array element?簡單的方法來改變的數組元素的密鑰值
我讀在一堆多維陣列,並同時通過它們我挖已經注意到一些鍵是不正確的。
對於每個不正確的密鑰,我只是想改變它爲零:
從:
$array['bad_value']
到:
$array[0]
我想保留數組元素的值,我只是想改變那個人的鑰匙。建議感激。
乾杯
可能重複:
In PHP, how do you change the key of an array element?簡單的方法來改變的數組元素的密鑰值
我讀在一堆多維陣列,並同時通過它們我挖已經注意到一些鍵是不正確的。
對於每個不正確的密鑰,我只是想改變它爲零:
從:
$array['bad_value']
到:
$array[0]
我想保留數組元素的值,我只是想改變那個人的鑰匙。建議感激。
乾杯
...
,你可以這樣做
$badKey = 'bad_value';
$array[0] = $array[$badKey];
unset($array[$badKey]);
$array['0'][] = $array['bad_value'];
unset($array['bad_value']);
然後它將是$ array ['0']中的數組,其值爲破碎的元素。
那麼看到你說的鑰匙可以更改爲任何數值如何呢?
$bad_keys = array('bad_key_1', 'bad_key_2' ...);
$i = 0;
foreach($bad_keys as $bad_key) {
$array[$i] = $array[$bad_key];
unset($array[$bad_key]);
$i++;
}
編輯:我給的解決方案是可怕的,並沒有真正解決問題,因爲有多重利空鍵,這應該會更好。
太糟糕了。絕對不需要在整個陣列上循環。 PHP完全知道如何獲得一個命名的數組元素,而不需要循環整個元素。 – 2009-11-03 14:14:27
如前所述,你不能有多個同名的鍵,例如0.你在做什麼?將這些密鑰分成單獨的數組是否可以接受? – RMcLeod 2009-11-03 13:42:05
對不起,當我說0時,它只是數字,所以它可能是1或2等等。這不是問題,一些關鍵是回來一些奇怪的東西,我需要擺脫它們。 – Evernoob 2009-11-03 13:51:11