Я пытаюсь преобразовать многомерный массив php в единственный массив ... но у меня возникают трудности с этим. Мой ввод такой:
array ( 0 => array ('id' => 3,
'text' => 'Name 3',
'children' =>
array (
0 =>
array (
'id' => 4,
'text' => 'Name 4',
'children' =>
array (
0 =>
array (
'id' => 5,
'text' => 'Name 5',
'children' =>
array (
0 =>
array (
'id' => 6,
'text' => 'Name 6',
),
),
),
),
),
1 =>
array (
'id' => 7,
'text' => 'name 7',
),
),),)
, и мой ожидаемый результат выглядит следующим образом:
array(3=>'Name 3', 4=>'name 4', 5=>'name 5', 6=>'name 6', 7=>'name 7')
Я пробовал до сих пор следующее:
function nestedToSingle($array)
{
$singleDimArray = [];
foreach ($array as $item) {
if (is_array($item)) {
$singleDimArray = array_merge($singleDimArray, nestedToSingle($item));
} else {
$singleDimArray[] = $item;
}
}
return $singleDimArray;
}
но он дает мне такой вывод:
array ( 0 => 3, 1 => 'name 3', 2 => 4, 3 => 'Name 4', 4 => 5, 5 => 'name 5', 6 => 6, 7 => 'name 6', 8 => 7, 9 => 'name 7',)