On Sun, 2002-02-03 at 12:12, Mike Frazer wrote: > Your reply piqued my curiosity so I whipped together a script that times the > execution of a foreach(), a while() and a for() loop executing the same > commands. The results were rather surprising in some ways but not really > overall. > > The while() loop is, as you stated, is quicker than a foreach() loop. > However, the for() loop is the fastest of all three. Below are the results > of three tests:
Odd.. I get the opposite result: Running test_foreach() 5000 times...2.6176570653915 seconds Running test_for() 5000 times...3.0155370235443 seconds Running test_while() 5000 times...2.0656290054321 seconds Results: test_foreach_1: 2.6176570653915 test_for_2: 3.0155370235443 test_while_3: 2.0656290054321 Using the following code: <?php error_reporting(E_ALL); function test_while() { global $upload_file; reset($upload_file); foreach ($upload_file as $line) { $num_pipes = substr_count($line, '|'); if ($num_pipes < 2 || $num_pipes > 4) { return false; } } return true; } function test_foreach() { global $upload_file; reset($upload_file); while (list(, $line) = each($upload_file)) { $num_pipes = substr_count($line, '|'); if ($num_pipes < 2 || $num_pipes > 4) { return false; } } return true; } function test_for() { global $upload_file; for ($i = 0; $i < count($upload_file); $i++) { $num_pipes = substr_count($upload_file[$i], '|'); if ($num_pipes < 2 || $num_pipes > 4) { return false; } } return true; } $filename = 'testpipes.txt'; $upload_file = file($filename); speedtest(array('test_foreach', 'test_for', 'test_while'), 5000); ?> Curioser and curiouser.... Torben -- Torben Wilson <[EMAIL PROTECTED]> http://www.thebuttlesschaps.com http://www.hybrid17.com http://www.inflatableeye.com +1.604.709.0506 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php