2010-04-03 24 views
0

好的,我有一个数组,像这样:更改值的计数(阵列) - 1

$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 - count($ myArray) - 1重置数组,并保持第2个键的完整性和值。

有人可以帮我吗?

回答

1
$myArray = array_values($myArray); 
+0

+1好一:) :) – codaddict 2010-04-03 07:02:31

+0

感谢这个作品,不知道使用array_values会保持第二个键索引完好无损。 CHEERS :) – SoLoGHoST 2010-04-03 07:35:43

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. 
} 
0

你不需要它。为什么不单单放置这个数组呢?不必要的举动会导致你的代码乱七八糟。

+0

因为第一个密钥索引链接到一个我不希望其他人为了安全原因能够访问的ID! – SoLoGHoST 2010-04-03 07:27:42

+0

@sologhost谁强迫你打印出来的钥匙?在尝试之前曾经想过? – 2010-04-03 07:42:03

+0

哈哈,很好,我已经尝试过了,我只是已经厌倦了,因为我已经在想我已经在经历脑部F ...了......大声笑 – SoLoGHoST 2010-04-03 08:20:10