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 相关文章推荐
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
PHP--用万网的接口实现域名查询功能
Dec 13 PHP
深入PHP操作MongoDB的技术总结
Jun 02 PHP
PHP中array_slice函数用法实例详解
Nov 25 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
Mar 27 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
Jun 20 PHP
php实现的任意进制互转类分享
Jul 07 PHP
thinkPHP使用post方式查询时分页失效的解决方法
Dec 09 PHP
基于PHP生成简单的验证码
Jun 01 PHP
分享PHP-pcntl 实现多进程代码
Sep 30 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP 构造函数和析构函数原理与用法分析
Apr 21 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
php magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
JSON语法五大要素图文介绍
2012/12/04 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
Python常用列表数据结构小结
2014/08/06 Python
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
详解Django的CSRF认证实现
2018/10/09 Python
python中的json总结
2018/10/11 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
机械制造与自动化应届生求职信
2013/11/16 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
反邪教警示教育方案
2014/05/13 职场文书
无故旷工检讨书
2015/08/15 职场文书
校园运动会广播稿
2015/08/19 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis
Java数组详细介绍及相关工具类
2022/04/14 Java/Android
Python中的 No Module named ***问题及解决
2022/07/23 Python