b03*_*per 0 php arrays merge multidimensional-array
I have following array keys values:
$arrData = array
(
array(
'a' => 'test',
'c' => 1,
'd' => 2,
'e' => 'B'
),
array(
'c' => 1,
'd' => 2,
'e' => 'B'
),
array(
'b' => 'test2',
'c' => 1,
'd' => 2,
'e' => 'B'
)
);
Run Code Online (Sandbox Code Playgroud)
So here I need to merged array into single with combining missing keys with single value array. Can someone please help to get following output in single array?
$arrData = array
(
array(
'a' => 'test',
'b' => 'test2',
'c' => 1,
'd' => 2,
'e' => 'B'
)
);
Run Code Online (Sandbox Code Playgroud)
Thanking in advance!
只需合并它们,然后对键进行排序:
$arrData = array_merge(...$arrData);
ksort($arrData);
Run Code Online (Sandbox Code Playgroud)
代替...您可以使用:
$arrData = call_user_func_array('array_merge', $arrData);
Run Code Online (Sandbox Code Playgroud)
如果您确实希望结果是多维的,则:
$arrData = [$arraData];
//or
$arrData = array($arrData);
Run Code Online (Sandbox Code Playgroud)
您可以使用array_reduce(或简单的foreach循环)将每个后续数组值与第一个数组值合并:
$out = array_reduce($arrData, function ($c, $v) { return array_merge($c, $v); }, array());
print_r($out);
$out = array();
foreach ($arrData as $arr) {
$out = array_merge($out, $arr);
}
print_r($out);
Run Code Online (Sandbox Code Playgroud)
输出(对于两个示例):
Array (
[a] => test
[c] => 1
[d] => 2
[e] => B
[b] => test2
)
Run Code Online (Sandbox Code Playgroud)
如果要按字母顺序保留键,可以使用ksort:
ksort($out);
print_r($out);
Array (
[a] => test
[b] => test2
[c] => 1
[d] => 2
[e] => B
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |