php 代码优化之经典示例


Posted in PHP onMarch 24, 2011

我用的方法是按key区分块,然后在将块赋给其他的变量,然后再进行一些操作,这样用到了很多的for和foreach,而且代码量也很大,所以被退回来了。

经过上面的指导,发现真的好简单,现在与大家一同分享。

ID FIELD1 FIELD2 FIELD3 FIELD4 Key
1 *** *** *** *** meat1
2 *** *** *** *** meat1
3 *** *** *** *** meat1
4 *** *** *** *** meat1
5 *** *** *** *** fruit2
6 *** *** *** *** fruit2
7 *** *** *** *** fruit2
8 *** *** *** *** fruit2
9 *** *** *** *** fruit2
10 *** *** *** *** food3
11 *** *** *** *** food3

现在有如上所示的结果

要求:要对这个已经按key进行排序了的数组进行操作,相同key的项进行处理。

提示:这个是很典型的母子表的结构,也就是说其实它是两张表的合并,可以这样处理成两个数组,方便数组里面对块的操作
array1:ID|Key

ID Key
1 meat1
2 meat1
3 meat1
4 meat1
5 fruit2
6 fruit2
7 fruit2
8 fruit2
9 fruit2
10 food3
11 food3

array2:key => array(ID,FIELD1,FIELD2,FIELD3,FIELD4,FIELD5,Key)

ID FIELD1 FIELD2 FIELD3 FIELD4 Key
meat1=> 1 *** *** *** *** meat1
2 *** *** *** *** meat1
3 *** *** *** *** meat1
4 *** *** *** *** meat1
fruit2=> 5 *** *** *** *** fruit2
6 *** *** *** *** fruit2
7 *** *** *** *** fruit2
8 *** *** *** *** fruit2
9 *** *** *** *** fruit2
food3=> 10 *** *** *** *** food3
11 *** *** *** *** food3

实现如上数组分离代码

这样后,访问tempArray的块数据就非常方便了

foreach($tempArray as $row){

array1[$row['ID']] = $row['Key'];

array2[$row['Key']][] = $row;

}

访问和处理代码

foreach($array1 as $ID => $Key){

$this->doSomeThing($ID);

//访问tempArray的块数组$array2[$Key]

$this->doSomeThing2($array2[$Key]);

}

PHP 相关文章推荐
PHP 使用header函数设置HTTP头的示例解析 表头
Jun 17 PHP
PHP内核探索:变量存储与类型使用说明
Jan 30 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 PHP
PHP屏蔽过滤指定关键字的方法
Nov 03 PHP
PHP编程基本语法快速入门手册
Jan 07 PHP
PHPStrom 新建FTP项目以及在线操作教程
Oct 16 PHP
PHP中overload与override的区别
Feb 13 PHP
PHP getNamespaces()函数讲解
Feb 03 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
PHP连接SQL server数据库测试脚本运行实例
Aug 24 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
Mar 24 #PHP
php邮件发送,php发送邮件的类
Mar 24 #PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 #PHP
一个基于PDO的数据库操作类
Mar 24 #PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 #PHP
常见的PHP五种设计模式小结
Mar 23 #PHP
PHP中MVC模式的模板引擎开发经验分享
Mar 23 #PHP
You might like
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
PHP使用socket发送HTTP请求的方法
2016/02/14 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
PHP strripos函数用法总结
2019/02/11 PHP
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
2016/12/16 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
JavaScript原生节点操作小结
2017/01/17 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
Python实现的数据结构与算法之链表详解
2015/04/22 Python
python的Tqdm模块的使用
2018/01/10 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
python 输出所有大小写字母的方法
2019/01/02 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
python如何安装下载后的模块
2020/07/03 Python
浅析NumPy 切片和索引
2020/09/02 Python
Django url 路由匹配过程详解
2021/01/22 Python
和谐家庭事迹材料
2014/12/20 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
专家推荐信怎么写
2015/03/25 职场文书
结婚仪式主持词
2015/06/29 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android