Как массивы соединять между собой, если самые вложенные ключи одного являются самыми внешними ключами другого?
Получил массив, состоящий из массивов. В нем каждый следующий массив "уточняет" последние элементы в предыдущем. Например, у массива [0] есть элемент [2][2] ("5"), к которому нужно прицепить элемент [5] следующего массива [1]. Как их скрепить за соответствующие ключи один к другому, чтобы получился одни массив?
Array
(
[0] => Array
(
[1] => Array
(
)
[2] => Array
(
[0] => 3
[1] => 4
[2] => 5
)
[6] => Array
(
[0] => 7
[1] => 8
[2] => 9
[3] => 10
)
)
[1] => Array
(
[3] => Array
(
)
[4] => Array
(
)
[5] => Array
(
[0] => 11
)
[7] => Array
(
)
[8] => Array
(
[0] => 13
)
[9] => Array
(
)
[10] => Array
(
)
)
[2] => Array
(
[11] => Array
(
[0] => 12
)
[13] => Array
(
)
)
[3] => Array
(
[12] => Array
(
)
)
)
Ответы (1 шт):
Автор решения: splash58
→ Ссылка
Пусть здесь пока полежит, подождем ответа автора вопроса
function trans($e, $arr, $next=1) {
$r = [];
if($arr[$next][$e]) {
foreach($arr[$next][$e] as $y) {
$r[$y] = trans($y, $arr, $next+1);
}
}
return $r;
}
$res = [];
foreach($arr[0] as $k=>$v) {
$res[$k] = [];
foreach($v as $x) {
$res[$k][$x] = trans($x, $arr);
}
}
print_r($res);