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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
php4与php5的区别小结(配置异同)
Dec 20 PHP
PHP安全性漫谈
Jun 28 PHP
浅谈使用PHP开发微信支付的流程
Oct 04 PHP
PHP的APC模块实现上传进度条
Oct 27 PHP
PHP框架Laravel插件Pagination实现自定义分页
Apr 22 PHP
php实现图片按比例截取的方法
Feb 06 PHP
PHP微信PC二维码登陆的实现思路
Jul 13 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 14 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
Oct 03 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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
建立动态的WML站点(一)
2006/10/09 PHP
php+mysql写的简单留言本实例代码
2008/07/25 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
php获取post中的json数据的实现方法
2011/06/08 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
中文字符串截取的js函数代码
2013/04/17 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
详解Python中的Cookie模块使用
2015/07/06 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
研究生毕业鉴定
2014/01/29 职场文书
市级三好学生评语
2014/12/29 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
女方离婚起诉书
2015/05/18 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL