[英]How to merge or combine 2 arrays based on their keys in php
i have 2 array and i want to merge or combine them... 我有2个数组,我想合并或合并它们...
Array
(
[0] => Array
(
[year] => 2015
[value] => 32
)
[1] => Array
(
[year] => 2016
[value] => 54
)
)
Array
(
[0] => Array
(
[year] => 2015
[value] => 95
)
[1] => Array
(
[year] => 2016
[value] => 2068
)
)
i want them to look like this... 我希望他们看起来像这样...
Array(
[2015]=>array(
[0] => 32
[1] => 95
)
[2016]=>array(
[0] => 54
[1] => 2068
)
)
it this possible? 这可能吗? if ever, how?.... thanks so much
如果有的话,如何?....非常感谢
$a = array(
0 => array
(
"year" => 2015,
"value" => 32
),
1 => array
(
"year" => 2016,
"value" => 54
)
);
$b = array(
0 => array
(
"year" => 2015,
"value" => 300
),
1 => array
(
"year" => 2016,
"value" => 5400
)
);
$c = array_merge($a,$b);
$output = array();
foreach($c as $key=>$val)
{
$output[$val['year']][] = $val['value'];
}
echo '<pre>';
print_r($output);
exit;
Try this code.. 试试这个代码。
Try: 尝试:
$newArr = array();
foreach($array1 as $key1=>$arr1) {
$newArr[$arr1['year']][] = $arr1['value'];
$newArr[$arr1['year']][] = $array2[$key]['value'];
}
If the original arrays are $a
and $b
, run this code and the result you want will be in $result
如果原始数组为
$a
和$b
,请运行以下代码,所需结果将为$result
$sources = array_merge($a,$b);
$result = [];
foreach($sources as $data){
$yr = $data['year'];
if(!isset($result[$yr])) $result[$yr]=[];
$result[$yr][]=$data['value'];
}
You can also do something like this, 您也可以这样做
<?php
$test1 = [["year"=>2015,"value"=>32],["year"=>2016,"value"=>54]];
$test2 = [["year"=>2015,"value"=>95],["year"=>2016,"value"=>2068]];
$newarray=array();
foreach($test1 as $key1=>$value1){
$temp = [$value1['value']];
foreach($test2 as $key2=>$value2){
if($value1['year']==$value2['year']){
$temp[] = $value2['value'];
}
$newarray[$value1['year']] = $temp;
}
}
print_r($newarray);
?>
check here : https://eval.in/605323 在这里检查: https : //eval.in/605323
output is : 输出是:
Array
(
[2015] => Array
(
[0] => 32
[1] => 95
)
[2016] => Array
(
[0] => 54
[1] => 2068
)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.