可能重复:
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