让我们说我们已经动态生成了数组。
$arr[1]["a"] = "value";
$arr[1]["b"] = "value";
$arr[1]["c"] = "value";
$arr[2]["a"] = "value";
$arr[2]["b"] = "value";
$arr[2]["c"] = "value";
$arr[2]["d"] = "value";
$arr[3]["a"] = "value";
$arr[3]["g"] = "value";
可以操纵生成数组,因此不要将此示例视为核心线。 如你所见,有不同的键,但最后我们必须得到:
$arr[1]['a'] = 'value';
$arr[1]['b'] = 'value';
$arr[1]['c'] = 'value';
$arr[1]['d'] = 'empty value';
$arr[1]['g'] = 'empty value';
$arr[2]['a'] = 'value';
$arr[2]['b'] = 'value';
$arr[2]['c'] = 'value';
$arr[2]['d'] = 'value';
$arr[2]['g'] = 'empty value';
$arr[3]['a'] = 'value';
$arr[3]['b'] = 'empty value';
$arr[3]['c'] = 'empty value';
$arr[3]['d'] = 'empty value';
$arr[3]['g'] = 'value';
非空值是不同的,所以array_merge不是那么好用。
答案 0 :(得分:1)
我认为你想要这个(这是非常低效但我的大脑正在挣扎)
$keys = array();
foreach($arr as $array){
$keys = array_merge($keys, array_keys($array));
}
//$keys now has all unique keys
foreach($arr as $array){
foreach($keys as $key){
if(!isset($array[$key])){$array[$key] = null}
}
}
这是未经测试但我认为它应该可行
答案 1 :(得分:0)
我猜你想要用默认值填充你的数组......你可以用array_fill
来做那个
$keys = array("a","b","c","d","g");
$arr[1] = array_combine($keys,array_fill(0, 5, 'empty value'));
$arr[1]["a"] = "value";
$arr[1]["b"] = "value";
$arr[1]["c"] = "value";
print_r($arr[1]);
输出
Array
(
[a] => value
[b] => value
[c] => value
[d] => empty value
[g] => empty value
)