Code: Select all
while(list($key,$val) = each($array))
Code: Select all
foreach($array as $key=>$val)
Moderator: General Moderators
Code: Select all
while(list($key,$val) = each($array))
Code: Select all
foreach($array as $key=>$val)
Code: Select all
weirdan@home:~$ time php -r ' $arr = range(1,1000); $i = 1000; while ($i-->0) foreach($arr as $item) {$item=0;} '
real 0m0.483s
user 0m0.412s
sys 0m0.016s
weirdan@home:~$ time php -r ' $arr = range(1,1000); $i = 1000; while ($i-->0) {reset($arr); while(list(,$item)=each($arr)) {$item=0;}} '
real 0m2.706s
user 0m2.636s
sys 0m0.004s
What if any additions were being appended, and reset wasn't used?Weirdan wrote:reset + while(list()=each()) is consistently slower than foreach() :Code: Select all
weirdan@home:~$ time php -r ' $arr = range(1,1000); $i = 1000; while ($i-->0) foreach($arr as $item) {$item=0;} ' real 0m0.483s user 0m0.412s sys 0m0.016s weirdan@home:~$ time php -r ' $arr = range(1,1000); $i = 1000; while ($i-->0) {reset($arr); while(list(,$item)=each($arr)) {$item=0;}} ' real 0m2.706s user 0m2.636s sys 0m0.004s