Php Laravel 5.4-关联两个阵列
我想“关联”两个数组,我需要合并日期,但要将第二行数据添加到另一个数组中 一个例子更容易理解: 阵列1:Php Laravel 5.4-关联两个阵列,php,arrays,laravel,Php,Arrays,Laravel,我想“关联”两个数组,我需要合并日期,但要将第二行数据添加到另一个数组中 一个例子更容易理解: 阵列1: array:2 [▼ "July 2017" => 2 "May 2017" => 1 ] 阵列2: array:5 [▼ "April 2017" => 1 "July 2017" => 1 "June 2017" => 1 "March 2016" => 1 "September 2016" => 1 ] 结果
array:2 [▼
"July 2017" => 2
"May 2017" => 1
]
阵列2:
array:5 [▼
"April 2017" => 1
"July 2017" => 1
"June 2017" => 1
"March 2016" => 1
"September 2016" => 1
]
结果是:
array [
['April 2017', 1, 0],
['July 2017', 1, 2],
['June 2017', 1, 0],
['March 2016', 1, 0],
['September 2016', 1, 0],
['May 2017', 0, 1]
]
将合并具有相同名称(和年份)的所有月份。数组1中的数据添加到数组2之后。所以它变成了一个数组的数组
但是我找不到任何能做这项工作的函数
谢谢你的帮助 很容易实现。
<?php
$array1 = array(
"July 2017" => 2,
"May 2017" => 1
);
$array2 = array(
"April 2017" => 1,
"July 2017" => 1,
"June 2017" => 1,
"March 2016" => 1,
"September 2016" => 1
);
$array3 = $array2 + $array1;
$out = array();
foreach( $array3 as $k=>$v )
{
$out[] = array($k, (isset($array2[$k]) ? $array2[$k]:0), (isset($array1[$k]) ? $array1[$k]:0));
}
print_r( $out );
到现在为止你都试过什么?我发现了类似于
array\u merge
的东西,但这是一个加法,我需要的不仅仅是一个简单的加法。我认为您的结果集中有问题,请检查!!我甚至不明白你的例子。。。示例:在您的结果中:“2017年6月”=>1,2“但这2意味着什么?他试图对2个数组进行数组合并,然后对6月(1+1)求和(我猜所有月份都使用相同的名称),但我不知道1从何而来(来自第一个或第二个数组),因为他在2017年5月有,0?!对你来说很简单;)不管怎样,它都在工作,谢谢!如果你有时间解释在foreach中发生了什么,我会很感兴趣,$array3在当前任务中是不需要的,但它所用的只是获得$array1和$array2的总数组密钥,没有更多(我知道,我知道,这是肮脏的解决方案)。然后,foreach代码仅基于$array1值和$array2值构建所需的数组。
Array
(
[0] => Array
(
[0] => April 2017
[1] => 1
[2] => 0
)
[1] => Array
(
[0] => July 2017
[1] => 1
[2] => 2
)
[2] => Array
(
[0] => June 2017
[1] => 1
[2] => 0
)
[3] => Array
(
[0] => March 2016
[1] => 1
[2] => 0
)
[4] => Array
(
[0] => September 2016
[1] => 1
[2] => 0
)
[5] => Array
(
[0] => May 2017
[1] => 0
[2] => 1
)
)