¿Hay un enfoque para combinar matrices recursivamente, de la misma manera que la función array_merge_recursive()
de PHP, excepto que las claves enteras se tratan igual que las claves de cadena?Comportamiento array_merge_recursive de PHP en llaves enteras
(Es importante para el proceso que las claves de permanecer análisis sintáctico-poder como enteros.)
Por ejemplo:
$a = array(
'a' => array(1)
);
$b = array(
'a' => array(2, 3)
);
var_dump(array_merge_recursive($a, $b));
fusionará los de la llave y la salida "a"
, como se esperaba, lo siguiente:
array(1) {
["a"] => array(3) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
}
}
Sin embargo, cuando se utiliza enteros de teclas (incluso cuando como una cadena):
$a = array(
'123' => array(1)
);
$b = array(
'123' => array(2, 3)
);
var_dump(array_merge_recursive($a, $b));
array_merge_recursive()
devolverá:
array(2) {
[0] => array(3) {
[0] => int(1)
}
[1] => array(2) {
[0] => int(2)
[1] => int(3)
}
}
En lugar de la tan deseada:
array(1) {
["123"] => array(3) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
}
}
Pensamientos?
Si bien esto es correcto, se siente demasiado artificial. ¿Por qué no un bucle regular en su lugar? – Ezequiel