这就是我正在做的事情:
$dateRange = array('2010-01-01', '2010-01-02', '2010-01-03', ...);
$data = array('2010-01-01' => 5, '2010-01-03' => 7);
foreach ($dateRange as $date) {
$values[$date] = $data[$date];
}
$values
导致:
array (
'2010-01-01' => 5
'2010-01-02' => null
'2010-01-03' => 7
...
)
看起来相当有效,但我想知道是否有一个简单的PHP函数可以处理这个。
答案 0 :(得分:9)
$values = array_merge(array_fill_keys($dateRange, null), $data);
是否真的只有高效才能通过测试找到,但我会说它更简洁,易于理解,它不会抛出错误对于$data
中不存在的密钥。 :)
答案 1 :(得分:1)
有array_merge
但它会产生1 => 2010-01-02
而不是2010-01-02 => null
。
http://us.php.net/manual/en/ref.array.php
还有许多数组函数[编辑]:由于链接而留下这个答案,但另一个答案完全符合您的要求。