PHP实现将MySQL重复ID二维数组重组为三维数组的方法


Posted in PHP onAugust 01, 2016

本文实例讲述了PHP实现将MySQL重复ID二维数组重组为三维数组的方法。分享给大家供大家参考,具体如下:

应用场景

MYSQL在使用关联查询时,比如 产品表 与 产品图片表关联,一个产品多张产品图片,关联查询结果如下:

$arr=[
  ['id'=>1,'img'=>'img1'],
  ['id'=>1,'img'=>'img2'],
  ['id'=>1,'img'=>'img3'],
  ['id'=>2,'img'=>'img1'],
  ['id'=>2,'img'=>'img2'],
  ['id'=>2,'img'=>'img3'],
  ['id'=>3,'img'=>'img1'],
  ['id'=>3,'img'=>'img2'],
  ['id'=>3,'img'=>'img3'],
]

那么,我们要的结果一般是这样的,如下:

$arr=[
  ['id'=>1,'img'=>['img1','img2','img3']],
  ['id'=>2,'img'=>['img1','img2','img3']],
  ['id'=>3,'img'=>['img1','img2','img3']],
]

解决方案

$arr=[
    ['id'=>1,'img'=>'img1'],
    ['id'=>1,'img'=>'img2'],
    ['id'=>1,'img'=>'img3'],
    ['id'=>2,'img'=>'img1'],
    ['id'=>2,'img'=>'img2'],
    ['id'=>2,'img'=>'img3'],
    ['id'=>3,'img'=>'img1'],
    ['id'=>3,'img'=>'img2'],
    ['id'=>3,'img'=>'img3'],
]
$arr1=array();
foreach ($arr as $key => $value) {
    if( in_array($value['id'], $value)){
     $arr1[$value['id']]['id']=$value['id'];
     $arr1[$value['id']]['img'][]=$value['img'];
    }   
}
var_dump($arr1);

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
php include,include_once,require,require_once
Sep 05 PHP
php PDO中文乱码解决办法
Jul 20 PHP
centos 5.6 升级php到5.3的方法
May 14 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 PHP
php中header跳转使用include包含解决参数丢失问题
May 08 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
一个简单安全的PHP验证码类 附调用方法
Jun 24 PHP
php json中文编码为null的解决办法
Dec 14 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 #PHP
php+ajax登录跳转登录实现思路
Jul 31 #PHP
nginx下安装php7+php5
Jul 31 #PHP
header与缓冲区之间的深层次分析
Jul 30 #PHP
laravel学习教程之关联模型
Jul 30 #PHP
laravel学习教程之存取器
Jul 30 #PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 #PHP
You might like
解决CodeIgniter伪静态失效
2014/06/09 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
基于jQuery的动态表格插件
2011/03/28 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
外包公司软件测试工程师
2014/11/01 面试题
Overload和Override的区别
2012/09/02 面试题
初一生物教学反思
2014/01/18 职场文书
股东合作协议书
2014/09/12 职场文书
仓库保管员岗位职责
2015/02/09 职场文书