2008-10-21 102 views

回答

39

$foo = array_values($foo);將重新編號的數組,你

+0

哇。我讀了數組函數的列表,完全錯過了那一個。謝謝。 – 2008-10-21 15:11:32

1

而不是使用它聽起來像你應該使用foreach循環迴路。顯然你不關心索引,因爲你重新編號。

這個循環:

for ($i = 0; $i < $loopSize; $i++) 
{ 
process($myArray[$i]); 
} 

變成

foreach($myArray as $key=> $value) 
{ 
    process($value); 
    /** or process($myArray[$key]); */ 
} 

or even more simply 


foreach($myArray as $value) 
{ 
    process($value); 
} 
0

在我使用的,而不是嘗試的foreach在少數情況下,我很快就後悔了。

它總是可以避免的,你甚至可以使用foreach,但忽略值並使用鍵,幾乎忘了它是一個foreach而不是for,但是避免了鍵的任何間隙,並自動地處理你的界限沒有長度/最小/最大功能或任何東西。

ex。

foreach($myArray as $key=>$val) 
{ 
    myArray[$key] = myFunction(myArray[$key]); 
} 

我特別發現這對平行數組很有用。

$a = getA(); $b = getB(); 
foreach($a as $key=>val) 
{ 
    $sql = "INSERT INTO table (field1, field2) VALUES ($a[$key], $b[$key])"; 
}