发布网友 发布时间:2022-04-07 05:49
共2个回答
懂视网 时间:2022-04-07 10:10
php中foreach和for的性能区别是什么?下面本篇文章给大家对比一下php中的for和foreach的性能,介绍一下foreach和for的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。php中for和foreach的性能对比
总体来说,如果数据库过几十万了,才能看出来快一点还是慢一点,如果低于10万的循环,就不用测试了。php推荐用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中文网!!
热心网友 时间:2022-04-07 07:18
foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。