Я пытаюсь создать новый массив из двух текущих массивов. Пробовал array_merge, но он не даст мне то, что я хочу. $array1
- это список ключей, которые я передаю функции. $array2
содержит результаты этой функции, но не содержит каких-либо недопустимых результатов для ключей. Поэтому я хочу убедиться, что все запрошенные ключи выдаются с нулевыми значениями: ed, как показано в показанном массиве $result
.Слияние двух массивов в PHP
Это идет немного что-то вроде этого:
$array1 = array('item1', 'item2', 'item3', 'item4');
$array2 = array(
'item1' => 'value1',
'item2' => 'value2',
'item3' => 'value3'
);
Вот результат я хочу:
$result = array(
'item1' => 'value1',
'item2' => 'value2',
'item3' => 'value3',
'item4' => ''
);
Это может быть сделано таким образом, но я не думаю, что это хорошее решение - Мне действительно не нравится принимать простой выход и подавлять PHP-ошибки, добавляя в код @: s. Этот образец явно бросает ошибки, так как 'item4'
не находится в $array2
, на примере.
foreach ($keys as $k => $v){
@$array[$v] = $items[$v];
}
Итак, какой самый быстрый (эффективный) способ достичь того же результата?
О, вау, мне это нравится! Удивительный ответ – Alistair
Это не работает так хорошо, если $ array1 содержит числовые ключи ... – Industrial
@ Промышленный: он работает для вашего примера! ;) Имеет ли массив только числовые клавиши или смесь? – Chris