我需要迭代一个数组并做一些不需要数组实际值的事情。最有效的方法是什么?如果我确实需要使用数组元素值,答案会改变吗?我在下面给出了两种可能的解决方案。
<?php
$sql='INSERT INTO bla(x,y,z) ';
$myarray=array(4,3,6,9,6,3,6);
for ($i = 0; $i <= count($myarray); $i++) {
//Do something where $myarray[$x] is not needed such as make a sting
$sql.='(1,2,?),';
}
foreach($myarray as $arrayElement) {
//Do something where $arrayElement is not needed such as make a sting
$sql.='(1,2,?),';
}
?>
答案 0 :(得分:5)
据我所知,for
比foreach
略快,因此效率更高。当然,差异是如此之小,我怀疑在大多数情况下任何人都可以注意到它。
但是foreach
似乎是一种更优雅的方式,而且在关联数组的情况下,它是您唯一的选择。
答案 1 :(得分:2)
如果您不需要使用该值,则for
会更快一些。
如果您需要更改数组的值,那么带有foreach
的{{1}}循环是最快的。
见https://stackoverflow.com/a/3433065/2078780