例如有一个二维数组 $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] =>
) )

===

程序:

<?php
$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,
),
); $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 "<pre>";
print_r($res);
echo "</pre>";

参考资料:http://bbs.csdn.net/topics/390940872

PHP 二维数组根据相同的值进行合并的更多相关文章

  1. PHP如何随机获取一个二维数组中的一个值

    获取一个数组: $awardid_list=pdo_fetchall('select id from '.tablename($this->table_award)); 这是微擎的写法哈,意思就 ...

  2. php将一个二维数组按照某个字段值合并成一维数组,如果有重复则将重复的合并成二维数组

    版权声明:本文为博主原创文章,未经博主允许不得转载. 最近工作中碰到一个问题,用PHP将一个二维数组按照二维数组中的各个项中的某个特定字段值合并成一维数组,如果有重复则将重复的合并成二维数组,生成的二 ...

  3. php 二维数组按照某value值求出最大值最小值

    //商家的等级信息是一个二维数组,求出最小折扣和最大折扣array(0=>array('levelname'=>'银','dis'=>7.5), 1=>array('level ...

  4. 二维数组按某个键值排序 FOR PHP

    $arr=[ array( 'name'=>'小坏龙', 'age'=>28 ), array( 'name'=>'小坏龙2', 'age'=>14 ), array( 'na ...

  5. PHP中如何对二维数组按某个键值进行排序

    $arr=[     array(         'name'=>'张三',         'age'=>28     ),     array(         'name'=> ...

  6. PHP二维数组按某个键值排序

    $data=Array(    [0] => Array        (            [id] => 2            [user_id] => 14       ...

  7. php 删除二维数组中某个key值

    /** * 根据key删除数组中指定元素 * @param array $arr 数组 * @param string/int $key 键(key) * @return array */ priva ...

  8. PHP按二维数组中的某个值重新排序数组 usort的使用方法

    $arr[0] = ['aa'=>123,'bb'=>'abc']; $arr[1] = ['aa'=>456,'bb'=>'dfe']; usort($arr,ss('aa' ...

  9. php 基础 二维数组以某个重复值累加

    $arr = array( array('id' => 123, 'name' => '张三', 'amount'=>'1'), array('id' => 123, 'nam ...

随机推荐

  1. RecyclerView拖拽排序和滑动删除实现

    效果图 如何实现 那么是如何实现的呢?主要就要使用到ItemTouchHelper ,ItemTouchHelper 一个帮助开发人员处理拖拽和滑动删除的实现类,它能够让你非常容易实现侧滑删除.拖拽的 ...

  2. URL和URI的区别与联系

    转自:http://win7452.blog.51cto.com/147513/45741 今天在看STRUTS配置的时候,发现一个问题,就是在看配置文件的时候,有时出现URL有时又是URI, 让我心 ...

  3. Searchable(搜索功能)(转)

    文章来源:http://developer.android.com/guide/topics/search/search-dialog.html 一.前言: Android为程序的搜索功能提供了统一的 ...

  4. 在MSSQL中对ACCESS文件操作方式汇总

    CSDN朋友问题回复: 有个ACCESS数据库文件在本机,机器上的OFFICE套件已经卸载,ACCESS没有用户名和密码,如何用MSSQLServer来查询和修改其文件内容? 比如ACCESS物理文件 ...

  5. Menu菜单

    选项菜单 1.菜单的生命周期 * onCreateOptionsMenu() 选项菜单创建时调用(启动Activity时调用 只调用1次) * onPrepareOptionsMenu() 选项菜单准 ...

  6. poj 1115 Lifting the Stone 计算多边形的中心

    Lifting the Stone Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  7. SU suplane命令学习

    各位博友,不足之处,批评指正! 用其他软件打开看看, 注意:下图中应该是倾角,dip=Δt/Δx,单位为ms/traces,

  8. node相关--测试

    测试: assert模块; //node自带 var assert = require('assert'); var now = Date.now(); console.log(now); asser ...

  9. Hierarchy视图里的Transform和Camera组件

    Hierarchy视图里的Transform和Camera组件 在Hierarchy视图里,选中Camera,然后在Inspector视图里查看其各组件,如图1-8所示.对于Transform和Cam ...

  10. Hadoop_10_shuffle02_详解Shuffle过程【来源网络】推荐更为详细

    网址:http://www.cnblogs.com/felixzh/p/4680808.html Shuffle过程,也称Copy阶段.reduce task从各个map task上远程拷贝一片数据, ...