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 相关文章推荐
一个用php实现的获取URL信息的类
Jan 02 PHP
一个自定义位数的php多用户计数器代码
Mar 11 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
web目录下不应该存在多余的程序(安全考虑)
May 09 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
May 10 PHP
使用PHP接受文件并获得其后缀名的方法
Aug 05 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
详解PHP编码转换函数应用技巧
Oct 22 PHP
php对接java现实加签验签的实例
Nov 25 PHP
Laravel 自定命令以及生成文件的例子
Oct 23 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 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
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
2016/10/26 Javascript
vue.js的提示组件
2017/03/02 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
Python中的魔法方法深入理解
2014/07/09 Python
Python下载懒人图库JavaScript特效
2015/05/28 Python
python开发之函数定义实例分析
2015/11/12 Python
python 中split 和 strip的实例详解
2017/07/12 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
2017/12/09 Python
python中reader的next用法
2018/07/24 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
事业单位考核材料
2014/05/21 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL