PHP 二维数组根据相同的值进行合并
例如有一个二维数组 $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 二维数组根据相同的值进行合并的更多相关文章
- PHP如何随机获取一个二维数组中的一个值
获取一个数组: $awardid_list=pdo_fetchall('select id from '.tablename($this->table_award)); 这是微擎的写法哈,意思就 ...
- php将一个二维数组按照某个字段值合并成一维数组,如果有重复则将重复的合并成二维数组
版权声明:本文为博主原创文章,未经博主允许不得转载. 最近工作中碰到一个问题,用PHP将一个二维数组按照二维数组中的各个项中的某个特定字段值合并成一维数组,如果有重复则将重复的合并成二维数组,生成的二 ...
- php 二维数组按照某value值求出最大值最小值
//商家的等级信息是一个二维数组,求出最小折扣和最大折扣array(0=>array('levelname'=>'银','dis'=>7.5), 1=>array('level ...
- 二维数组按某个键值排序 FOR PHP
$arr=[ array( 'name'=>'小坏龙', 'age'=>28 ), array( 'name'=>'小坏龙2', 'age'=>14 ), array( 'na ...
- PHP中如何对二维数组按某个键值进行排序
$arr=[ array( 'name'=>'张三', 'age'=>28 ), array( 'name'=> ...
- PHP二维数组按某个键值排序
$data=Array( [0] => Array ( [id] => 2 [user_id] => 14 ...
- php 删除二维数组中某个key值
/** * 根据key删除数组中指定元素 * @param array $arr 数组 * @param string/int $key 键(key) * @return array */ priva ...
- PHP按二维数组中的某个值重新排序数组 usort的使用方法
$arr[0] = ['aa'=>123,'bb'=>'abc']; $arr[1] = ['aa'=>456,'bb'=>'dfe']; usort($arr,ss('aa' ...
- php 基础 二维数组以某个重复值累加
$arr = array( array('id' => 123, 'name' => '张三', 'amount'=>'1'), array('id' => 123, 'nam ...
随机推荐
- (转)Android中的Shape使用总结
http://blog.csdn.net/bear_huangzhen/article/details/24488337 在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的 ...
- BaseActivity与BaseFragment的封装
这篇博客主要是从BaseActivity与BaseFragment的封装开始,总结我们在实战开发中关于Fragment的注意事项以及心得体会. 先看以下效果图: 这里模拟的是用户登录模块,你可能会说, ...
- mysql php nginx 源码包下载地址
http://mirror.cogentco.com/pub/mysql/MySQL-5.5/ http://mirrors.sohu.com/php/ http://nginx.org/downlo ...
- InnoDB引擎的索引和存储结构
在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的.而MySql数据库提供了多种存储引擎.用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据 ...
- Type InvokeMember()用法简介
举例: Type tDate = typeof(System.DateTime); Object result = tDate.InvokeMember("Now", Bindin ...
- 用PHP语言做网站常见漏洞有哪些?
第一:SQL注入漏洞 在进行网站开发的时候,程序员由于对用户输人数据缺乏全面判断或者过滤不严导致服务器执行一些恶意信息,比如用户信息查询等.黑客可以根据恶意程序返回的结果获取相应的信息.这就是所 ...
- poj 1330 LCA
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #i ...
- 拼接JSONStringer出现的不正确的情况。
错误现象: 错误分析及其解答: JSONStringer可以直接嵌套JSONArray,JSONArray可以作为JSONStringer的值.我错误的原因是本质是:JSONArray存放的是JSON ...
- LightOJ 1248 Dice (III) 概率
Description Given a dice with n sides, you have to find the expected number of times you have to thr ...
- android 项目中规范使用SharedPreferences
一.SharedPreferences是什么来的? SharedPreferences是Android四种数据存储技术中的一种(SharedPreferences.SQLite.Content Pro ...