当前位置:首页 » 编程语言 » php合并多个数组

php合并多个数组

发布时间: 2022-12-29 11:32:30

php 多个数组合并 重新生成新的数组并按要求值相加

$aa='[{"id": 0, "num": "2", "name": "产品1", "price": "37", "amount": 74, "zdamount": 100}, {"id": 1, "num": "2", "name": "产品2", "price": "37", "amount": 74, "zdamount": 100}]';
$bb='[{"id": 0, "num": "3", "name": "产品1", "price": "37", "amount": 90, "zdamount": 110}, {"id": 1, "num": "5", "name": "产品2", "price": "37", "amount": 150, "zdamount": 180}]';
$cc='[{"id": 2, "num": "3", "name": "产品3", "price": "37", "amount": 90, "zdamount": 110}, {"id": 1, "num": "5", "name": "产品2", "price": "37", "amount": 150, "zdamount": 180}]';
$j_a = json_decode($aa,1);
$j_b = json_decode($bb,1);
$j_c = json_decode($cc,1);
$arr_list = [$j_a,$j_b,$j_c];//把数组扔进大数组,这样可以随意增加个数
$result = [];
foreach ($arr_list as $k=>$v) {//第一次循环,把原数组取出
foreach ($v as $key => $value) {//第二次循环,正式取出数据
if (isset($result[$value['id']])) {//如果有此id,则进行累加操作
$result[$value['id']]['num'] += $value['num'];
$result[$value['id']]['amount'] += $value['amount'];
$result[$value['id']]['zdamount'] += $value['zdamount'];
} else {//没有此id则进行赋值操作
$result[$value['id']]['id'] = $value['id'];
$result[$value['id']]['price'] = $value['price'];
$result[$value['id']]['name'] = $value['name'];
$result[$value['id']]['num'] = $value['num'];
$result[$value['id']]['amount'] = $value['amount'];
$result[$value['id']]['zdamount'] = $value['zdamount'];
}
}
}
echo json_encode($result,320);//输出结果,如果需要序列化键值,可以使用array_values($result)

② php里面如何合并数组

可以使用函数array_merge();

③ PHP数组合并

$arr=[array('no'=> 100103320096),array('no' => 100100170006)];

$arr1=array();//定义新数组
foreach($arr as $k=>$v){//用foeach循环获取数组的各个值,赋值给新数组
$arr1[]=$v['no'];
};
print($arr1);//输出的是你要的新数组

④ PHP数组合并

用array_merge()进行合并,得到的结果是:
Array ( [0] => [1] => [2] => Array ( [0] => test2 [1] => test3 ) ) ,下面的php文档对这个函数的说明,将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。

如果你一定要得到跟你的要求一模一样的结果,我想只能是自己重新写一个函数了!

⑤ php合并一个或多个数组

array_merge
(PHP 4, PHP 5, PHP 7)
array_merge — 合并一个或多个数组
1.说明
array_merge ([ array $... ] ) : array
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将 不会 覆盖原来的值,而是附加到后面。
如果输入的数组存在以数字作为索引的内容,则这项内容的键名会以连续方式重新索引。
2.参数
...
要合并的数组。
返回值
返回合并后的结果数组。如果参数为空,则返回空 array。
更新日志
版本 说明
7.4.0 允许不带参数调用,之前版本至少需要一个参数。
3.范例
示例 #1 array_merge() 示例
"red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>

⑥ php 多个数组合并



$array1=array(
0=>array("time"=>"2017-04"),
1=>array("time"=>"2017-05"),
2=>array("time"=>"2017-06")
);
$array2=array(
0=>array("amount"=>"38970.00"),
1=>array("amount"=>"75030.00")
);
$array3=array(
0=>array("count"=>"9"),
1=>array("count"=>"83")
);

$array4=array();
foreach($array1AS$key=>$value)
{
//$array4[$key]=array_merge($value,$array2[$key],$array3[$key]);
$array4[$key]=$value;
$array4[$key]+=$array2[$key]?$array2[$key]:array();
$array4[$key]+=$array3[$key]?$array3[$key]:array();
}
var_mp($array4);

⑦ 请教php数组如何合并

我给个写法,,其实写法很多自己再慢慢琢磨下

<?php
$a=array
(
0=>array
(
'id'=>1,
'love'=>'苹果'
),
1=>array
(
'id'=>1,
'love'=>'西瓜'
),
2=>array
(
'id'=>2,
'hobby'=>'桃子'
),
3=>array
(
'id'=>2,
'hobby'=>'梨子'
),
4=>array
(
'id'=>2,
'hobby'=>'葡萄'
),
5=>array
(
'id'=>3,
'hobby'=>'香蕉'
)
);
$b=array();//最后结果存放的数组
$b[0]['id']=$a[0]['id'];//初始化数组
$b[0]['love']=array(isset($a[0]['love'])?$a[0]['love']:$a[0]['hobby']);//初始化数组
$temp=0;//初始化下标
for($i=1;$i<count($a);$i++)
{
$flag=0;//数组是否新增一个变量/还是合并
foreach($bas$k=>$item)
{
if($a[$i]['id']==$item['id'])
{
$b[$k]['love'][]=isset($a[$i]['love'])?$a[$i]['love']:$a[$i]['hobby'];
$flag=1;//合并;
break;
}
}
if($flag==0)//新增
{
$temp+=1;
$b[$temp]['id']=$a[$i]['id'];
$b[$temp]['love']=array(isset($a[$i]['love'])?$a[$i]['love']:$a[$i]['hobby']);
}
}
var_mp($b);
?>

⑧ PHP 数组合并

你这不就是把两个一维数组放到二维数组里面去吗?

把两个一维数组外面再套一层[]后去array_merge。

举个例子:

$arr1=['id'=>1,'value'=>'a'];
$arr2=['id'=>2,'value'=>'b'];
$arr3=['id'=>3,'value'=>'c'];
$result=[];//结果变量
for($i=1;$i<=3;$i++){
$result=array_merge($result,[${'arr'.$i}]);
}

$result就是合并后的二维数组

热点内容
服务器怎么设置电脑远程端口 发布:2025-07-03 16:28:46 浏览:72
电信无线路由器官方密码是什么 发布:2025-07-03 16:25:00 浏览:773
空间只能申请访问 发布:2025-07-03 16:23:27 浏览:735
华硕天选2air配置如何选择 发布:2025-07-03 16:10:09 浏览:571
asp搜索源码 发布:2025-07-03 15:49:55 浏览:235
医美大数据库 发布:2025-07-03 15:47:07 浏览:357
c语言将二进制转化为十进制 发布:2025-07-03 15:32:47 浏览:988
c语言帮助文档 发布:2025-07-03 15:22:43 浏览:320
双端口存储器在情况下会发生读写冲突 发布:2025-07-03 15:12:54 浏览:271
快站数据库 发布:2025-07-03 14:45:44 浏览:40