Задать вопрос
AlexanderShapoval
@AlexanderShapoval
PHP maker

Слияние двух многомерных массивов с заменой существующих и дописывание не существующих значений, существует реализация без цикла?

Суть такова:
Есть массивы:
$array1 = array(
	'archive' => array(
		'first' => true,
		'second' => true
	)
);
$array2 = array(
	'archive' => array(
		'first' => false
	)
);

Если я напишу:
array_merge( $array1, $array2);

То получу:
array(
	'archive' => array(
		'first' => false
	)
);

А на самом деле мне нужно:
array(
	'archive' => array(
		'first' => false,
		'second' => true
	)
);


Понимаю что это можно реализовать на цикле, но возможно есть возможность без цикла получить нужный результат?

P.S. Функция array_merge_recursive выводит:
array(
	'archive' => array(
		'first' => array(
			0 => true,
			1 => false
		,
		'second' => true
	)
);
  • Вопрос задан
  • 352 просмотра
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
Ninazu
@Ninazu
имхо лучшее - враг хорошего


$array1 = array(
  'archive' => array(
    'first' => true,
    'second' => true
  )
);
$array2 = array(
  'archive' => array(
    'first' => false
  )
);
echo "<pre>";
var_dump(array_replace_recursive($array1,$array2));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@maxloyko
если и есть готовая функция, она в любом случаи подразумевает перебор и там БУДЕТ цикл.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы