php中的for 和foreach性能对比
2017-08-06 22:17
267 查看
总体来说,如果数据库过几十万了,才能看出来快一点还是慢一点,如果低于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慢。
循环数字数组时,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中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
- php的foreach,while,for的性能比较
- for、while、foreach性能比较-PHP篇
- 对比C#中for和foreach循环的性能
- C# for VS foreach 性能对比
- 对比C#中for和foreach循环的性能
- for、while、foreach性能比较-PHP篇
- php中for与foreach对比
- PHP生成随机密码的4种方法及性能对比
- for和foreach性能比较
- C#中for和foreach循环的性能
- PHP 使用 curl_* 系列函数和 curl_multi_* 系列函数进行多接口调用时的性能对比
- C# 中 for和foreach 性能比较,提高编程性能
- php代码优化 -- array_walk 和 foreach, for 的效率的比较
- for VS. foreach 那个性能更高,为什么,怎么选择
- C# 中 for和foreach 性能比较,提高编程性能
- foreach php中实现的for另一用法
- memcache原生,php客户端,java客户端的性能对比
- php中foreach、for的另类写法
- Java基础——foreach与正常for循环效率对比