2008-10-21 106 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])"; 
}