推荐使用foreach循环遍历,效率应该要比for要高很多,同时使用for循环遍历的时候,最好把count()函数放在后面,这样效率会更高。
PHP中foreach与 for的对比测试以及语句块带来的性能消耗测试,代码如下:有兴趣研究探讨的同学可以自己去试一试
<?php $times = 1000000; $i = 1; $datas = array(); while($i <= $times) array_push($datas, $i++); $start = microtime(true); foreach($datas as $index => $data) $data + 1; echo 'foreach使用单条语句耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />'; $start = microtime(true); foreach($datas as $index => $data) { $data + 1; } echo 'foreach使用花括号语句块耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />'; $start = microtime(true); for($i = 0; $i < $times; $i ++) $datas[$i] + 1; echo 'for使用单条语句耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />'; $start = microtime(true); for($i = 0; $i < $times; $i ++) { $datas[$i] + 1; } echo 'for使用花括号语句块耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />'; $start = microtime(true); foreach($datas as $index => $data) if(true) $data + 1; echo 'if使用单条语句耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />'; $start = microtime(true); foreach($datas as $index => $data) if(true) { $data + 1; } echo 'if使用花括号语句块耗时'.(microtime(true) - $start).'秒/'.$times.'次.<br />'; //测试输出结果: //1. //foreach使用单条语句耗时0.3329381942749秒/1000000次. //foreach使用花括号语句块耗时 0.29159283638秒/1000000次. //for使用单条语句耗时0.36926007270813秒/1000000次. //for 使用花括号语句块耗时0.38744306564331秒/1000000次. //2. //foreach使用单条语句耗时 0.31623697280884秒/1000000次. //foreach使用花括号语句块耗时0.30771088600159秒 /1000000次. //for使用单条语句耗时0.37136602401733秒/1000000次. //for使用花括号语句块耗时 0.36817598342896秒/1000000次. //3. //foreach使用单条语句耗时0.30369997024536 秒/1000000次. //foreach使用花括号语句块耗时0.29136395454407秒/1000000次. //for使用单条语句耗时0.35858488082886秒/1000000次. //for使用花括号语句块耗时0.36309790611267秒/1000000 次. //结论: //1>foreach比for快一些 //2>{}是为了程序易读 //3>尽量少使用语句块 ?>
未经允许不得转载:微信信息发源地 » PHP效率探讨:for与foreach的对比
评论前必须登录!
登陆 注册