Существует ли подход для рекурсивного слияния массивов, так же как и функция PHP array_merge_recursive()
, за исключением того, что целочисленные ключи обрабатываются так же, как строковые ключи?
(Для процесса важно, чтобы ключи оставались разборчивыми как целые числа.)
Например:
$a = array(
'a' => array(1)
);
$b = array(
'a' => array(2, 3)
);
var_dump(array_merge_recursive($a, $b));
Соединяет ключ "a"
и выводит, как ожидалось, следующее:
array(1) {
["a"] => array(3) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
}
}
Однако при использовании целых чисел для ключей (даже если в качестве строки):
$a = array(
'123' => array(1)
);
$b = array(
'123' => array(2, 3)
);
var_dump(array_merge_recursive($a, $b));
array_merge_recursive()
вернется:
array(2) {
[0] => array(3) {
[0] => int(1)
}
[1] => array(2) {
[0] => int(2)
[1] => int(3)
}
}
Вместо желаемого:
array(1) {
["123"] => array(3) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
}
}
Мысли?