arrays — неверный цифровой ключ при использовании php array_merge_recursive

Я пытаюсь рекурсивно объединить два массива с помощью array_replace_recursive.
Это код:

$col = array();
$new = array_merge_recursive($col, array('table1' => array(1 => true)));
$new = array_merge_recursive($new, array('table1' => array(0 => false)));

Дамп массива $ new

array(1) { ["table1"]=> array(2) { [1]=> bool(true) [2]=> bool(false) } }

Что мне нужно, это сохранить числовые ключи массива «table1». Ожидаемый результат должен быть

array(1) { ["table1"]=> array(2) { [0]=> bool(false) [1]=> bool(true) } }

У кого-нибудь есть решение для этого?

0

Решение

использование array_replace_recursive вместо array_merge_recursive,

0

Другие решения

Вы можете изменить порядок своих аргументов

$new = array_merge_recursive(array(), array('table1' => array(0 => false)));
$new = array_merge_recursive($new, array('table1' => array(1 => true)));

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

0

По вопросам рекламы [email protected]