[英]How to merge or combine 2 arrays based on their keys in php
我有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
)
)
我希望他們看起來像這樣...
Array(
[2015]=>array(
[0] => 32
[1] => 95
)
[2016]=>array(
[0] => 54
[1] => 2068
)
)
這可能嗎? 如果有的話,如何?....非常感謝
$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;
試試這個代碼。
嘗試:
$newArr = array();
foreach($array1 as $key1=>$arr1) {
$newArr[$arr1['year']][] = $arr1['value'];
$newArr[$arr1['year']][] = $array2[$key]['value'];
}
如果原始數組為$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'];
}
您也可以這樣做
<?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);
?>
在這里檢查: https : //eval.in/605323
輸出是:
Array
(
[2015] => Array
(
[0] => 32
[1] => 95
)
[2016] => Array
(
[0] => 54
[1] => 2068
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.