博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP数组读取的循环操作
阅读量:6815 次
发布时间:2019-06-26

本文共 1093 字,大约阅读时间需要 3 分钟。

PHP基本上就是一种数组语言。时常要进行大量的数组循环操作,主要有两种方式,一种是foreach,另一种是while,到底哪种好哪种坏一直有争论,虽然我很早就意识到了这个问题,但是一直没有细究,懵懂的感觉一直持续到现在,为了以后能节省点CPU时间,下面总结一下:在循环里进行的是数组“读”操作,则foreach比while快:无格式查看复制到剪贴板打印代码?foreach ($array as $value) {       echo $value;   }     while (list($key) = each($array)) {       echo $array[$key];   }  foreach ($array as $value) {    echo $value;}while (list($key) = each($array)) {    echo $array[$key];}在循环里进行的是数组“写”操作,则while比foreach快:无格式查看复制到剪贴板打印代码?foreach ($array as $key => $value) {       echo $array[$key] = $value . '...';   }     while (list($key) = each($array)) {       $array[$key] = $array[$key] . '...';   }  foreach ($array as $key => $value) {    echo $array[$key] = $value . '...';}while (list($key) = each($array)) {    $array[$key] = $array[$key] . '...';}总结:通常认为,foreach涉及到值复制,一定会比while慢,但实际上,如果仅仅是在循环里进行数组的读操作,那么foreach是很快的,这是因为PHP采用的复制机制是“引用复制,写时拷贝”,这样看来,foreach的高效读操作就不难理解了。另外,既然foreach不适合处理数组写操作,那么我们可以得出一个结论,多数情况下,类似foreach ($array as $key => $value)形式的代码都应该被替换成while (list($key) = each($array))。这些技巧产生的速度差异在小项目里可能并不明显,但是在类似框架这样的大项目中,一次请求动辄便会涉及到几百几千几万次数组循环操作,差异就会明显放大。

转载地址:http://ofdzl.baihongyu.com/

你可能感兴趣的文章
web开发一些资源的在线引用地址
查看>>
__block __weak简单使用
查看>>
零散知识点
查看>>
电子面单开发流程
查看>>
UWP:本地应用数据
查看>>
记录一次sql注入绕过
查看>>
Android SDK Android NDK Android Studio 官方下载地址
查看>>
06、豆瓣爬虫
查看>>
Charles修改HTTP返回技巧(断点法)
查看>>
高度自适应
查看>>
Asp.Net实现文件下载的几种方式
查看>>
android textView 添加超链接(两种实现方式)
查看>>
Shiro学习总结(1)——Apache Shiro简介
查看>>
Web应用界面设计规范
查看>>
戴尔服务器状态信息和简单处理
查看>>
字符串的回文子序列个数(以后再看)
查看>>
jbpm4.4 源码深度解析 (一)
查看>>
面试总结之 String
查看>>
映像文件工具srec
查看>>
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 120: illegal multibyte sequence
查看>>