2012-04-17 3 views
2

У меня есть два массиваобъединить два массива в третий массив

$arr1 = array(
    'setting_one' => 'abc', 
    'setting_two' => 'def', 
    'setting_three' => 'test' 
); 

$arr2 = array(
    'setting_two' => 'user defined' 
); 

$arr3= array(); 

Я хочу $array3 выглядеть

array(
    'setting_one' => 'abc'; 
    'setting_two' => 'user defined', 
    'setting_three' => 'test' 
); 

как я могу объединить два массива в третий массив? Возьмите в реальный мир пример того, что первые два массива являются массивами настроек, первый массив - это глобальный массив, а второй массив - это пользовательские настройки. Третий массив представляет собой комбинацию из двух массивов, в то же время предпочитая значения второго массива по массивам глобальных настроек.

+0

Есть ли причина, по которой вы не можете просто переписать значение? вместо создания $ arr2 –

+0

@LawrenceCherone Возможно, существует более длинный список пользовательских настроек? – hjpotter92

+1

@ChasingDeath Ya, массив 2 может иметь больше настроек, не предоставляемых глобальными массивами настроек. – Eli

ответ

4
$arr3 = array_merge($arr1, $arr2); 

Это объединяет arr2 в arr1 (это означает, что любое столкновение разрешается с использованием значения из arr2).

Обратите внимание, что это не рекурсивно и не будет объединять вспомогательные массивы так, как вы, вероятно, ожидаете.

http://php.net/array_merge

+0

О, хм, я взглянул на это до публикации, но нужно убедиться. И я понимаю, что рекурсивная функция не является особенностью. спасибо, что прояснил это – Eli

1
$arr3 = array_merge($arr1, $arr2); 

array_merge() делает подмену из второго массива для вас.

Смежные вопросы