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 相关文章推荐
人大复印资料处理程序_查询篇
Oct 09 PHP
PHP安装攻略:常见问题解答(一)
Oct 09 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
php生成酷炫的四个字符验证码
Apr 22 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
Apr 30 PHP
PHP7 新特性详细介绍
Sep 06 PHP
php 解析xml 的四种方法详细介绍
Oct 26 PHP
php实现图片按比例截取的方法
Feb 06 PHP
轻松实现php文件上传功能
Feb 17 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 10 PHP
php和html的区别点详细总结
Sep 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
BBS(php & mysql)完整版(八)
2006/10/09 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
Python类的多重继承问题深入分析
2014/11/09 Python
python 网络编程常用代码段
2016/08/28 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
python面试题之列表声明实例分析
2019/07/08 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
高中军训第一天感言
2014/03/06 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
爱心活动计划书
2014/04/26 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
教师业务学习材料
2014/12/16 职场文书
校长新学期致辞
2015/07/30 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python
JavaScript分页组件使用方法详解
2021/07/26 Javascript
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js