Я нашел несколько сообщений, но никто не работает. Пробовал array_merge, array_replace_recursive, array_merge_recursive, но не выполнил мою задачу.Объединить многомерные массивы
Я хочу объединить 5 массивов ниже в один массив, но я не понимаю, почему меняются годы. Является ли это из-за того, что документация говорит:
Если, однако, массивы имеют одинаковый числовой ключ, позднее значение не перезаписывает исходное значение, но будет добавлен.
<?php
$a['x'][2015]['s'] = "xxxxxx";
$a['x'][2015]['d'] = 1;
$b['x'][2014]['s'] = "yyyyyyyyy";
$b['x'][2014]['d'] = 3;
$c['x'][2013]['s'] = "sssssss";
$c['x'][2013]['d'] = 22;
$d['x'][2012]['s'] = "ddddddddddddd";
$d['x'][2012]['d'] = 21;
$f['x'][2011]['s'] = "ffffffff";
$f['x'][2011]['d'] = 52;
$e = array();
$e = array_replace_recursive ($e,$a);
$e = array_replace_recursive ($e,$b);
$e = array_replace_recursive ($e,$c);
$e = array_replace_recursive ($e,$d);
$e = array_replace_recursive ($e,$f);
echo json_encode($e);
?>
Выходной Я получаю { "х": { "2015": { "S": "XXXXXX", "г": 1}, "2016": { "S": "YYYYYYYYY"}, "2017": { "d": 3}, "2018": { "s": "SSSSSSS", "d": 22}, "2019": { "s": "ddddddddddddd", "d": 21}, "2020": { "s": "FFFFFFFF", "d": 52}}}
EDIT: К сожалению, array_replace_recursive дает правильный результат. Я делал что-то неправильно в phpfiddle.org моделирования ....
Как должен выглядеть вывод? Пожалуйста, отредактируйте свой вопрос. –