我有 2 个数组,我希望通过每个数字键将其中合并/分组在一起。 例如
Array1
(
[2009] => 131
[2008] => 940
[2007] => 176
[2006] => 1
)
Array2
(
[2008] => 9
[2007] => 3
)
我希望输出是:
Array (
[2009] => 131
[2008] => Array (
[0]=>940
[1]=>9
)
[2007] => Array (
[0]=>176
[1]=>3
)
[2006] => 1
)
我到底如何实现这一目标?我尝试过 array_merge 但我丢失了 key 并且它们没有分组。
最佳答案
如果我没看错,您只希望这些键保存一个数组,该数组引用更多而不是单个值。其他键仍应引用标量值...
所以你需要一个两步走的策略:
// 1.) turn _all keys into arrays
foreach (array($input1,$input2) as $array)
foreach ($array1 as $key=>$val)
$output[$key][]=$val;
// 2.) reconvert elements with single entry to a scalar value again
foreach ($output as $key=>$candidate)
if (1==count($candidate))
$output[$key]=$candidate[0];
// test output
print_r($output);
关于php - 合并 2 个数组并合并数字键的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16856276/