博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP 二维数组根据相同的值进行合并
阅读量:5132 次
发布时间:2019-06-13

本文共 2463 字,大约阅读时间需要 8 分钟。

例如有一个二维数组 $arr:

$arr = array(     array(         'review_id' =>102 ,         'url'=>'a.jpg',      ),     array(         'review_id' =>102 ,         'url'=>'b.jpg',      ),          array(         'review_id' =>102 ,         'url'=>'c.jpg',      ),     array(         'review_id' =>103 ,         'url'=>'aa.jpg',      ),          array(         'review_id' =>103 ,         'url'=>'bb.jpg',      ),     array(         'review_id' =>104 ,         'url'=>'aaa.jpg',      ),     array(         'review_id' =>105 ,         'url'=>null,      ),         array(         'review_id' =>106 ,         'url'=>null,      ),                        );

现在需要把相同 review_id 的数组的 url 进行合并,形成:

Array(    [0] => Array        (            [review_id] => 102            [url] => Array                (                    [0] => a.jpg                    [1] => b.jpg                    [2] => c.jpg                )        )    [1] => Array        (            [review_id] => 103            [url] => Array                (                    [0] => aa.jpg                    [1] => bb.jpg                )        )    [2] => Array        (            [review_id] => 104            [url] => aaa.jpg        )    [3] => Array        (            [review_id] => 105            [url] =>         )    [4] => Array        (            [review_id] => 106            [url] =>         ))

===

程序:

102 , 'url'=>'a.jpg', ), array( 'review_id' =>102 , 'url'=>'b.jpg', ), array( 'review_id' =>102 , 'url'=>'c.jpg', ), array( 'review_id' =>103 , 'url'=>'aa.jpg', ), array( 'review_id' =>103 , 'url'=>'bb.jpg', ), array( 'review_id' =>104 , 'url'=>'aaa.jpg', ), array( 'review_id' =>105 , 'url'=>null, ), array( 'review_id' =>106 , 'url'=>null, ), );$res = array();foreach($arr as $item) { if(! isset($res[$item['review_id']])){ $res[$item['review_id']] = $item; }else{ $res[$item['review_id']]['url'] .= ',' . $item['url']; //[url] => a.jpg,b.jpg,c.jpg }}$res = array_values($res);$a = array();foreach ($res as $k => $v) { if($v['url'] != "" && strpos($v['url'],",") !== false){ $a = explode(",", $res[$k]['url']); $res[$k]['url'] = $a; }}echo "
";print_r($res);echo "
";

 

参考资料:

转载于:https://www.cnblogs.com/dee0912/p/4246665.html

你可能感兴趣的文章
C语言学习笔记(五):《C语言深度剖析》笔记
查看>>
pc端适配
查看>>
java项目中build path的设置
查看>>
Java设计模式中的单例模式
查看>>
.NetCore 下开发独立的(RPL)含有界面的组件包 (一)准备工作
查看>>
vue/iview使用moment.js
查看>>
JsonConfig处理日期时间
查看>>
静态查找结构概论
查看>>
python学习笔记(七):面向对象编程、类
查看>>
安全漏洞整改解决方案
查看>>
TCP/IP笔记 三.运输层(3)——TCP超时重传算法
查看>>
json对象的封装与解析
查看>>
搜索引擎的时效性需求满足
查看>>
nodejs笔记五--MongoDB基本环境配置及增删改查;
查看>>
C语言指针的使用例子(1)指针地址的输出
查看>>
JS 获取当前时间
查看>>
Angular官方教程采坑
查看>>
RabbitMQ官方教程一 "Hello World!"
查看>>
7 - Struts.xml各属性说明(待补充)
查看>>
python json.dumps() 中文乱码问题
查看>>