Is there an approach for recursively merging arrays, in the same way as PHP's array_merge_recursive()
function does, except that integer keys are treated the same as string keys?
(It's important for the process that the keys remain parse-able as integers.)
For example:
$a = array(
'a' => array(1)
);
$b = array(
'a' => array(2, 3)
);
var_dump(array_merge_recursive($a, $b));
Will merge the on the "a"
key and output, as expected, the following:
array(1) {
["a"] => array(3) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
}
}
However, when using integers for keys (even when as a string):
$a = array(
'123' => array(1)
);
$b = array(
'123' => array(2, 3)
);
var_dump(array_merge_recursive($a, $b));
array_merge_recursive()
will return:
array(2) {
[0] => array(3) {
[0] => int(1)
}
[1] => array(2) {
[0] => int(2)
[1] => int(3)
}
}
Instead of the much desired:
array(1) {
["123"] => array(3) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
}
}
Thoughts?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…