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 相关文章推荐
PHP5 面向对象程序设计
Feb 13 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
php计算当前程序执行时间示例
Apr 24 PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
试用php中oci8扩展
Jun 18 PHP
PHP实现递归无限级分类
Oct 22 PHP
PHP简单判断字符串是否包含另一个字符串的方法
Mar 25 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
php json转换相关知识(小结)
Dec 21 PHP
php快速导入大量数据的实例方法
Sep 23 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
提问的智慧
2006/10/09 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
AngularJS表单验证功能
2017/10/19 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
Python遍历目录的4种方法实例介绍
2015/04/13 Python
初步讲解Python中的元组概念
2015/05/21 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
HTML5 Canvas概述
2009/08/26 HTML / CSS
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
《菜园里》教学反思
2014/04/17 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
Golang 正则匹配效率详解
2021/04/25 Golang
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
python 闭包函数详细介绍
2022/04/19 Python