我的问题与类似的帖子有点不同,在某种意义上,我没有任何其他数组可以合并。
我想将数组与多维数组合并。
所以它不再是多维的了。
下面是我的数组:
Array
(
[2013-12-01::2015-07-29] => Array
(
[TotalMonths] => 1
[0] => 2015-07-01
)
[2015-11-01::2016-03-30] => Array
(
[TotalMonths] => 5
[0] => 2015-11-01
[1] => 2015-12-01
[2] => 2016-01-01
[3] => 2016-02-01
[4] => 2016-03-01
)
[2016-04-01::2017-11-30] => Array
(
[TotalMonths] => 3
[0] => 2016-04-01
[1] => 2016-05-01
[2] => 2016-06-01
)
)我正在尝试的是将所有数组与in合并。但是索引(TotalMonths)是常见的,因此只有这样,它才应该将类似于(1+5+3) = 8的值相加,这将反映在新的合并数组中。
我也尝试过this example,但我不知道如何获得相同的价值观。
这就是我迄今尝试过的:
print_r($collidingMonths);
$outPutArray = array();
foreach($collidingMonths as $innerArray) {
$outPutArray[key($innerArray)] = current($innerArray);
}
print_r($outPutArray);但我得到了我不想要的结果:
Array
(
[TotalMonths] => 3
)发布于 2016-04-28 05:42:28
我认为预期输出OP需要的是:
array
(
[TotalMonths] => 9,
[0] => 2015-07-01,
[1] => 2015-11-01,
[2] => 2015-12-01,
[3] => 2016-01-01,
[4] => 2016-02-01,
[5] => 2016-03-01,
[6] => 2016-04-01,
[7] => 2016-05-01,
[8] => 2016-06-01,
)为了做到这一点,我们可以做这样的事情:
$outPutArray = array();
foreach($collidingMonths as $timestamp => $monthsArray)
{
foreach($monthsArray as $key => $value)
{
if(is_numeric($value))
{
if(isset($outPutArray[$key]))
$outPutArray[$key] += $value;
else
$outPutArray[$key] = $value;
}
else
{
array_push($outPutArray, $value);
}
}https://stackoverflow.com/questions/36905856
复制相似问题