$a = [
['a' => 11, 'b' => 23, 'c' => 33],
['a' => 122, 'b' => 23, 'c' => 33],
['a' => 122, 'b' => 2, 'c' => 3],
];
$b = [
['a' => 334, 'b' => 264],
['a' => 314, 'b' => 274],
['a' => 364, 'b' => 284]
];
// 获取$a的所有字段
$a_keys = array_keys(reset($a));
// 为$b补充缺失字段
$b_filled = array_map(function($item) use ($a_keys) {
return array_merge(
array_fill_keys($a_keys, ''), // 先用默认值创建全字段数组
$item // 再用$b的元素覆盖存在的字段
);
}, $b);
// 合并两个数组
$result = array_merge($a, $b_filled);
print_r($result);输出结果
Array ( [0] => Array ( [a] => 11 [b] => 23 [c] => 33 ) [1] => Array ( [a] => 122 [b] => 23 [c] => 33 ) [2] => Array ( [a] => 122 [b] => 2 [c] => 3 ) [3] => Array ( [a] => 334 [b] => 264 [c] => ) [4] => Array ( [a] => 314 [b] => 274 [c] => ) [5] => Array ( [a] => 364 [b] => 284 [c] => ) )
说明:
array_keys(reset($a)) 获取$a第一个元素的所有键,作为完整字段列表
上一篇:
CSS不让文本换行,超出部分用...替代
下一篇:
PHP计算会员卡续期累加时间方法