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关联数组的10个操作技巧
Jan 21 PHP
浅析php插件 HTMLPurifier HTML解析器
Jul 01 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
php实现图片转换成ASCII码的方法
Apr 03 PHP
php基本函数汇总
Jul 09 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
php文件缓存方法总结
Mar 16 PHP
iOS10推送通知开发教程
Sep 19 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
PHP实现文件上传与下载
Aug 28 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
如何用php获取文件名后缀
2013/06/09 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
详解python实现线程安全的单例模式
2018/03/05 Python
python实现定时发送qq消息
2019/01/18 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
django-csrf使用和禁用方式
2020/03/13 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
python FTP编程基础入门
2021/02/27 Python
syb养殖创业计划书
2014/01/09 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
安全协议书
2014/04/23 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
信息技术课教学反思
2016/02/23 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
golang 实用库gotable的具体使用
2021/07/01 Golang
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技