将第一个键中的值从0更改为count(array) - 1

时间:2010-04-03 06:45:42

标签: php arrays

好的,我有一个像这样的数组:

$myArray[32]['value'] = 'value1';
$myArray[32]['type'] = 'type1';
$myArray[33]['value'] = 'value2';
$myArray[33]['type'] = 'type2';
$myArray[35]['value'] = 'value3';
$myArray[42]['value'] = 'value4';
$myArray[42]['type'] = 'type4';

好的,寻找快速方法将第一个键32,33,35和42中的所有数字改为0,1,2和3。但我需要保留第二个键和所有值。数组已经正确排序,因为我使用kso​​rt命令它,但现在我需要从0重置数组 - 计数($ myArray) - 1并保持第二个键完整及其值。

有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:1)

$myArray = array_values($myArray);

答案 1 :(得分:0)

可能有更简单的解决方案,但这是一个有效的解决方案:

$myArray = array();
$myArray[32]['value'] = 'value1';
$myArray[32]['type'] = 'type1';
$myArray[33]['value'] = 'value2';
$myArray[33]['type'] = 'type2';
$myArray[35]['value'] = 'value3';
$myArray[42]['value'] = 'value4';
$myArray[42]['type'] = 'type4';

$map = array_flip(array_keys($myArray)); // map old keys to new keys.
$newarray = array();
foreach($myArray as $key => $value) {
    $newarray[$map[$key]] = $value; // use new key and old value.
}

答案 2 :(得分:0)

你不需要它。为什么不单独留下这个阵列呢?不必要的举动会导致代码混乱。