note 33436 added to control-structures.while

From: Date: Wed, 25 Jun 2003 22:32:11 +0000
Subject: note 33436 added to control-structures.while
Groups: php.notes 
Request: Send a blank email to php-notes+get-51013@lists.php.net to get a copy of this message
I recently did a performance analysis, comparing while() and foreach() when traversing an array. Foreach() is nearly 2x faster - an effect most notable when traversing large, multi-dimensional arrays. Here's my code: <? for ($i=0; $i<10000; $i++) $a[$i]=$i*2; echo "list time: \n".$start=mktime()."\n"; for ($i=0; $i<1000; $i++) { reset($a); while(list($k, $v)=each($a)) { echo ""; } } echo ($finish=mktime())."\n"; $result=$finish-$start; echo "Result: $result seconds\n\n"; echo "for time: \n".$start=mktime()."\n"; for ($i=0; $i<1000; $i++) { foreach($a as $k => $v) { echo ""; } } echo ($finish=mktime())."\n"; $result=$finish-$start; echo "Result: $result seconds\n\n"; ?> And here's the results on an 1800+ Athlon: list time: 1056579474 1056579512 Result: 38 seconds fore time: 1056579512 1056579533 Result: 21 seconds ---- Manual Page -- http://www.php.net/manual/en/control-structures.while.php Edit Note -- http://master.php.net/manage/user-notes.php?action=edit+33436 Delete Note -- http://master.php.net/manage/user-notes.php?action=delete+33436&report=yes Reject Note -- http://master.php.net/manage/user-notes.php?action=reject+33436&report=yes

« previous php.notes (#51013) next »