Более эффективный способ объединения массивов в PHP? - PullRequest
1 голос
/ 02 декабря 2010

Вот что я делаю:

$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, которая будетсправиться с этим.

Ответы [ 2 ]

9 голосов
/ 02 декабря 2010
$values = array_merge(array_fill_keys($dateRange, null), $data);

Является ли это на самом деле эффективным , можно выяснить только путем тестирования, но я бы сказал, что оно более лаконично, легко понять, и не выдает ошибок для несуществующие ключи в $data. :)

1 голос
/ 02 декабря 2010

Есть array_merge, но он выдаст 1 => 2010-01-02 вместо 2010-01-02 => null.

Есть также целый ряд функций массива на http://us.php.net/manual/en/ref.array.php

[ Редактировать ]: оставив этот ответ из-за ссылок, но другой ответ выполняет именно то, что вы хотели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...