Tips!for文の条件式に関数を使うとパフォーマンスが落ちる - PHP
for文の条件式に変数を使った場合と、関数を使った場合と比較すると前者の方が処理が速くなります。
これよりも…
<?php for ($i = 0; $i < count($data); $i++) { // 処理 }
こっちのが速い
<?php $cnt = count($data); for ($i = 0; $i < $cnt; $i++) { // 処理 }
計測してみます。
<?php $start = microtime(true); $data = range(1, 1000000); for ($i = 0; $i < count($data); $i++) { $data2[] = $data[$i]; } $pasttime = microtime(true) - $start; error_log($pasttime);
実行経過: $pasttime
一回目: 0.098823070526123
二回目: 0.097952127456665
三回目: 0.093841075897217
四回目: 0.092334032058716
五回目: 0.095686912536621
<?php $start = microtime(true); $data = range(1, 1000000); $cnt = count($data); for ($i = 0; $i < $cnt; $i++) { $data2[] = $data[$i]; } $pasttime = microtime(true) - $start; error_log($pasttime);
実行経過: $pasttime
一回目: 0.059938907623291
二回目: 0.061800003051758
三回目: 0.057307004928589
四回目: 0.059583902359009
五回目: 0.057235956192017
(byへびさん)