2010-04-03 64 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