php中的for 和foreach性能对比

Posted 周伯通的麦田

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中的for 和foreach性能对比相关的知识,希望对你有一定的参考价值。

总体来说,如果数据库过几十万了,才能看出来快一点还是慢一点,如果低于10万的循环,就不用测试了,两者性差异不明显。但是我还是推荐用foreach。
循环数字数组时,for需要事先count($arr)计算数组长度,需要引入自增变量$i,每次循环都要进行条件判断$i<$c,然后自增$i++,输出数组元素时,$arr[$i]需要进行哈希操作.

而foreach循环数组时,指针会自动指向下一个元素,不需要计算数组长度,没有条件判断和自增变量,调用元素时也没有哈希操作,所以性能肯定要比for和while高.另外,for和while对存在键值映射的关联数组无能为力.所以,遍历数组,首选foreach.foreach也是我php里最喜欢的关键字,因为它确实强大.array_map/array_filter/array_walk遍历数组的方式和foreach一样,但需要执行回调函数,所以也比foreach慢。




以上是关于php中的for 和foreach性能对比的主要内容,如果未能解决你的问题,请参考以下文章

PHP之快速排序和冒泡排序性能对比

GaussDB(for Influx)与开源企业版性能对比

dotnet 6 数组拷贝性能对比

laravel 整合 swoole ,并简单 ab 测试对比性能以及在 PHPstorm 中利用debug调试配置swoole服务中的PHP代码

nginx+php与apache+php性能对比

mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据