我有一个带有一些键的数组,这里我需要的是在相同的键上合并值,例如,键117和&的记分卡值. 107应该在输出数组中合并如下所示.
$input_array = array (
38 => array
(
117 => array
(
'scorecard' => array
(
0 => 'q4'
),
'business_plan' => array
(
0 => 'q4'
)
),
107 => array
(
'scorecard' => array
(
0 => 'q1'
),
'business_plan' => array
(
0 => 'q2'
)
),
),
53 => array
(
373 => array
(
'scorecard' => array
(
0 => 'q4'
),
'business_plan' => array
(
0 => 'q1'
)
),
110 => array
(
'scorecard' => array
(
0 => 'q4',
0 => 'q3'
),
'business_plan' => array
(
0 => 'q4'
),
'marketing_plan' => array
(
0 => 'q3',
1 => 'q4'
)
)
),
318 => array
(
2279 => array
(
'scorecard' => array
(
0 => 'q4'
)
)
)
);
输出数组将包含如下值: –
Array
(
[38] => Array
(
[scorecard] => Array
(
[0] => q4
[1] => q1
)
[business_plan] => Array
(
[0] => q4
[1] => q2
)
)
[53] => Array
(
[scorecard] => Array
(
[0] => q4
[1] => q3
)
[business_plan] => Array
(
[0] => q1
[0] => q4
)
[marketing_plan] => Array
(
[0] => q3
[1] => q4
)
)
[318] => Array
(
[scorecard] => Array
(
[0] => q4
)
)
)
解决方法:
它可以通过组合array_map
,array_reduce
和array_merge_recursive
来完成:
$result = array_map(function ($item) {
return array_reduce($item, 'array_merge_recursive', []);
}, $input_array);
这是working demo.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。