PHP如何合并数组当中有相同数值的数组

如题所述

第1个回答  2016-10-14
array_unique函数提供了过滤重复的值的功能,但是该函数只能处理一维数组,如果遇到多维数组我们可以现将其转化为一维数组。示例代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

/*
* $data 是你要处理数据
* $result 是输出的结果
*/

//将其转化为一维数组
foreach ($data as &$row) {
$row = serialize($row);
}
unset($row);

$data = array_unique($data);
//还原多维数组
foreach ($data as &$row) {
$row = unserialize($row);
}
unset($row);

不好意思 楼主要求,我看错了,追加下面的代码

1
2
3
4
5
6
7
8
9
10
11
12

$result=array();
$tmp_arr=array();
foreach ($data as $row) {
$tmp_arr[$row['confuguarable_sku']][] = $row['size'];
}
//将尺寸用逗号拼接
foreach ($tmp_arr as $sku => $size) {
$result[] = array('confuguarable_sku'=>$sku, 'size'=>implode(",", $size));
}
echo "<pre>";
//输出结果
print_r($result);

php将二维数组值数组里某一个键值一样的拼装成一个三维数组
php $indexArr = array(); $newArr = array(); foreach ($sourceArr as $v) { \/\/ 判断该order_id是否已经存在于新数组中 if (array_key_exists($v['order_id'], $indexArr)) { \/\/ 获取该order_id在新数组中的位置 $k = $indexArr[$v['order_id']]; ...

thinkphp中两条数据有相同的内容,如何将他们合并成一条数据
1. 在用mysql查询的时候,用group by (某一个字段) 将其查询结果合并;或者;2. 查询条件用limit 1 限制查询结果条数,反正内容一样,你就要一条即可;

php判断数组重复,并把重复的数据相加
既然你要把单号相同的加起来,就可以认为单号是唯一的,所以单号可以做key sourceArr = array(); \/\/ 这里就是你原始数据的数组$newArr = array(); \/\/ 这里是相加后处理过的数组,以单号为keyforeach ($sourceArr as $v) { if (array_key_exists($v['id'], $newArr)) { $...

php 合并多维数组中相同的值
arr = array( array( array("stocknotifyId" => 1,"sku" => '13809_BL_37',"email" => 'huang@aaa.com'), array("stocknotifyId" => 3,"sku" => '13809_BL_37',"email" => 'hrheve@dfwef.com'), array("stocknotifyId" => 5,"sku" => '13809_BL_37',"e...

php合并两个二维数组,如果两个二维数组的id值相等,则合并为一个新的数 ...
function mergeById(&$a,&$b){ c=array();foreach($a as $e)$c[$e['id']]=$e;foreach($b as $e)$c[$e['id']]=isset($c[$e['id']])? $c[$e['id']]+$e : $e;return $c;} a=\/\/数组一;b=\/\/数组二;var_dump(mergeById($b,$a));=== array 1 => array ...

php怎么把数组中相同的多个元素合并为一个元素
\/\/暂时认为你的第一个数组为$a,第二个数组为$b,利用PHP的foreach循环可以实现类似功能

PHP合并具有相同键值的二维数组
arr=array(0=>array('a'=>'语言'),1=>array('b'=>'数学'),2=>array('a'=>'语文'));newarr=array();foreach($arr as $k=>$v){ foreach($v as $t=>$z){ newarr[$t][]=$z;} }

php 一个三维数组,把值相同的合并,并把其它值累加
'online_down' => 0 ) ), 1 => Array ( 0 => array ( 'idc_name_list' => '首都在线云', 'online_down' => 23, 'start_time' => '2014-11-20 17:49', 'end_time' =>

arraymerge(关于arraymerge的基本详情介绍)
array_merge() 是 PHP 中一种专门设计用于合并数组的函数。其主要功能是将两个或多个数组中的元素合并到一起。在合并过程中,如果有相同字符串键的值存在,则会以合并后数组中出现的顺序覆盖前一个值。当你使用 array_merge() 合并数组时,数组的数字索引对应的数值会按照合并后数组的顺序重新排列。

php两个数组相加,依据数组中某一个元素的值,如果相同,就加入该列中,怎...
\/\/暂时认为你的第一个数组为$a,第二个数组为$b,利用PHP的foreach循环可以实现类似功能 <?php \/\/首先计算哪个数组元素少,最大限度节省运算量 ca = count($a);cb = count($b);\/\/第二个数组元素少 if ($a>=$b) { arr = &$a;typeid = $b;\/\/第一个数组元素少 } else { arr = ...

相似回答