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 编程请选择正确的文本编辑软件
Dec 21 PHP
轻松修复Discuz!数据库
May 03 PHP
Laravel框架数据库CURD操作、连贯操作总结
Sep 03 PHP
php获取汉字拼音首字母的方法
Oct 21 PHP
Docker 如何布置PHP开发环境
Jun 21 PHP
PHP线程的内存回收问题
Jul 08 PHP
redirect_uri参数错误的解决方法(必看)
Feb 16 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
PHP让网站移动访问更加友好方法
Feb 14 PHP
php和html的区别点详细总结
Sep 24 PHP
PHP生成图表pChart的示例解析
Jul 31 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/08/07 PHP
浅谈json_encode用法
2015/03/05 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
Javascript 判断是否存在函数的方法
2013/01/03 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
jQuery Ajax async=>false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
python进阶教程之文本文件的读取和写入
2014/08/29 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
python连接mysql实例分享
2016/10/09 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
浅谈Python __init__.py的作用
2020/10/28 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
领导证婚人证婚词
2014/01/13 职场文书
公司委托书格式
2014/08/01 职场文书
陕西导游词
2015/02/04 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书