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中路径问题的解决方案
Oct 09 PHP
PHP伪造referer实例代码
Sep 20 PHP
php join函数应用
May 04 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
Sep 30 PHP
使用HMAC-SHA1签名方法详解
Jun 26 PHP
ThinkPHP之getField详解
Jun 20 PHP
twig模板常用语句实例小结
Feb 04 PHP
php cookie工作原理与实例详解
Jul 18 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
php+js实现裁剪任意形状图片
Oct 31 PHP
PHP批斗大会之缺失的异常详解
Jul 09 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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 nl2br()格式化输出的详解
2013/06/05 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
php多线程并发实现方法
2016/09/30 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
体育之星事迹材料
2014/05/11 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
违反交通法规检讨书
2014/09/10 职场文书
开发房地产协议书
2014/09/14 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
交警失职检讨书
2015/01/26 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
医生个人年终总结
2015/02/28 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
对公司的意见和建议
2015/06/04 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript
Java死锁的排查
2022/05/11 Java/Android
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL