PHP多表取数据的代码优化
<?php header("Content-type: text/html; charset=utf-8"); //假设这里的$goods_arr 和 $shop_arr 都是从数据库中查询出来的数组 $goods_arr = array( 0 => array( 'activity_id' => 1, 'activity_name' => '午夜今日特价345345sss', 'shop_id' => 300001, ), 1 => array( 'activity_id' => 2, 'activity_name' => '0点档限量抢购', 'shop_id' => 300002, ), 2 => array( 'activity_id' => 3, 'activity_name' => '凌晨惊爆抢购', 'shop_id' => 300003, ), 3 => array( 'activity_id' => 4, 'activity_name' => '午夜限时抢购', 'shop_id' => 300003, 'create_time' => 1395050666, 'update_time' => 1411887987, 'is_del' => 1, ), 4 => array( 'activity_id' => 5, 'activity_name' => '早场限量秒杀', 'shop_id' => 300001, ), 5 => array( 'activity_id' => 6, 'activity_name' => '9点底价抢购', 'shop_id' => 300002, ) ); $shop_arr = array( 0 => array( 'shop_id' => 300001, 'shop_name' => '一号店', ), 1 => array( 'shop_id' => 300002, 'shop_name' => '天猫商城', ), 2 => array( 'shop_id' => 300003, 'shop_name' => '京东', ), 3 => array( 'shop_id' => 300004, 'shop_name' => '当当网', ) ); //传统做法,需要循环查询 tbShop表 的 次数就是 count($goods_arr) foreach($goods_arr as $k=>$v){ $goods_arr[$k]['shop_name'] = "select shop_name from tbShop where shop_id = $v[shop_id]";//这里只是SQL语句,能够表达意思即可。 } //重点开始.................... $temp = array(); foreach($shop_arr as $val){ $temp[$val['shop_id']] = $val; } //通过引用传递 &$v 将key "shop_name" 付给 $goods_arr [精辟] foreach($goods_arr as &$v){ $shop_id=$v['shop_id']; $v['shop_name']= $temp[$shop_id]['shop_name']; } print_r($goods_arr); /** //最后结果 Array ( [0] => Array ( [activity_id] => 1 [activity_name] => 午夜今日特价345345sss [shop_id] => 300001 [shop_name] => 一号店 ) [1] => Array ( [activity_id] => 2 [activity_name] => 0点档限量抢购 [shop_id] => 300002 [shop_name] => 天猫商城 ) [2] => Array ( [activity_id] => 3 [activity_name] => 凌晨惊爆抢购 [shop_id] => 300003 [shop_name] => 京东 ) [3] => Array ( [activity_id] => 4 [activity_name] => 午夜限时抢购 [shop_id] => 300003 [create_time] => 1395050666 [update_time] => 1411887987 [is_del] => 1 [shop_name] => 京东 ) [4] => Array ( [activity_id] => 5 [activity_name] => 早场限量秒杀 [shop_id] => 300001 [shop_name] => 一号店 ) [5] => Array ( [activity_id] => 6 [activity_name] => 9点底价抢购 [shop_id] => 300002 [shop_name] => 天猫商城 ) ) */ ?>
PHP多表取数据的代码优化的更多相关文章
- Drf 序列化 ModelSerializer跨表取数据
1.对于OneToOne.Foreignkey.choices字段可以使用source取出相关信息: class CourseSerializer(serializers.ModelSerialize ...
- 定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表
最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...
- Oracle 取两个表中数据的交集并集差异集合
Oracle 取两个表中数据的交集 关键字: Oracle 取两个表中数据的交集 INTERSECT Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据 例如现有如下表,要 ...
- 组件 layui 表单抓取数据四步走
注意事项: layui 中提交按钮是基于"监听"机制实现的. form.on() 的调用需置于 layui.use 的回调函数中. 末尾的 'return false' 不可或缺, ...
- 部分真验货客户未取进FP IN_SALES_ORDER表有数据,前台规划页面没显示
描述:部分真验货客户未取进FP,检查发现IN_SALES_ORDER表有数据630\600\610行项目数据,但前台只显示630数据,600和610前台没有显示 1.查看IN_SALES_ORDER表 ...
- 简单又强大的pandas爬虫 利用pandas库的read_html()方法爬取网页表格型数据
文章目录 一.简介 二.原理 三.爬取实战 实例1 实例2 一.简介 一般的爬虫套路无非是发送请求.获取响应.解析网页.提取数据.保存数据等步骤.构造请求主要用到requests库,定位提取数据用的比 ...
- EF里单个实体的增查改删以及主从表关联数据的各种增删 改查
本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表 ...
- MySQL单表百万数据记录分页性能优化
背景: 自己的一个网站,由于单表的数据记录高达了一百万条,造成数据访问很慢,Google分析的后台经常报告超时,尤其是页码大的页面更是慢的不行. 测试环境: 先让我们熟悉下基本的sql语句,来查看下我 ...
- EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载
之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...
随机推荐
- H3C S3600-28TP-SI配置命令
模式分类为:<H3C> 用户视图 [H3C] 系统视图 [H3C-Ethernet1/0/1] 以太网端口视图 [H3C-vlan10] VLAN视图 [H3C-Vl ...
- 三层交换机+二层交换机配置VLAN相互访问
使用思科模拟软件Cisco Packet Tracer Student,软件功能有限,只能架设简单的网络架构,适合初学者使用.
- [GDAL]读取HDF格式的calipso数据
探测地球云层分布的CloudSat和CALIPSO卫星 http://www.nasa.gov/mission_pages/calipso/main/index.html http://www.nas ...
- 成员变量NSString类型指针的属性为什么用copy(属性)
创建一个分类Person设置属性@property(nonatomic,strong) NSString * name; 在- (void)viewDidLoad 中打印测试 name的属性是stro ...
- Oracle Flashback Technologies - 估算不同时间段闪回日志的产生量
Oracle Flashback Technologies - 估算不同时间段闪回日志的产生量 v$flashback_database_stat监控闪回数据的i/o开销的统计信息,根据之前的系统负载 ...
- Dictionary中的结构体转出来
CGRect keyBoardFrame = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
- 转:python webdriver API 之下载文件
webdriver 允许我们设置默认的文件下载路径.也就是说文件会自动下载并且存在设置的那个目录中.要想下载文件,首选要先确定你所要下载的文件的类型.要识别自动文件的下载类型可以使用 curl ,如图 ...
- [原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 数据库SQL 多态
Sealed关键字:密封类 该类无法被继承 部分类: Namespace 命名空间 虚拟文件夹 Partial关键字 可以将一个类拆分成多个部分,分别放在多个文件里 多态: 1.编译多态 函数重载 2 ...
- UML: 部署图
说部署图之前,先看看某24小时便利店管理系统的网络拓扑结构图: 这个图描述了本系统的整体物理结构,从该图我们可以得到以下信息:1.该便利店集团有总部和多个门店,总部管理财务.仓库.采购等事宜.2.二级 ...