我有一个这样的多维数组
Array
(
[0] => Array
(
['key-A'] => 'val1'
['key-B'] => 'val2'
)
[1] => Array
(
['key-A'] => 'val3'
['key-C'] => 'val4'
)
[2] => Array
(
['key-B'] => 'val5'
['key-C'] => 'val6'
)
)
我如何将其更改为标准化的多维数组,以便所有键都存在,如果不存在键,则输入一个空值?
例如。
Array
(
[0] => Array
(
['key-A'] => 'val1'
['key-B'] => 'val2'
['key-C'] => null
)
[1] => Array
(
['key-A'] => 'val3'
['key-B'] => null
['key-C'] => 'val4'
)
[2] => Array
(
['key-A'] => null
['key-B'] => 'val5'
['key-C'] => 'val6'
)
)
<?php
$arrays = [
[
'key-A' => 'val1',
'key-B' => 'val2',
],
[
'key-A' => 'val3',
'key-C' => 'val4',
],
[
'key-B' => 'val5',
'key-C' => 'val6',
],
];
// First build up a single array containing all the keys present
$allKeys = [];
foreach ($arrays as $array)
{
$allKeys = array_unique(array_merge(array_keys($array), $allKeys));
}
// Then loop over the original array, merging the existing values into an array
// containing all the known keys
foreach ($arrays as &$array)
{
$array = array_merge(array_combine(
$allKeys,
array_fill(0, count($allKeys), null)
), $array);
}
print_r($arrays);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句