3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = array( 'Группа' => array( 'Ид' => 'aed92e32-a88d-11e9-b74b-002522d5a8f5', 'Наименование' => '01_ДЛЯ ПРОДАЖ', 'Группы' => array( 'Группа' => array( '10' => array( 'Ид' => '776ea23c-4a7a-11ea-a3ba-002522d5a8f5', 'Наименование' => 'Литература', 'Группы' => array( 'Группа' => array( 'Ид' => 'faa0a831-4b3a-11ea-a3ba-002522d5a8f5', 'Наименование' => 'Журналы учета', ), ), ), ) )) ); function list_items($array, $parent = 0) { $output = array(); if (isset($array['Ид'])) { $array = array($array); } foreach ($array as $arr) { if (!is_array($arr)) echo $arr; $output[] = array('id' => $arr['Ид'], 'name' => $arr['Наименование'], 'parent' => $parent); if (is_array($arr['Группы']['Группа'] ?? NULL)) { $output = array_merge($output, list_items($arr['Группы']['Группа'], $arr['Ид'])); } } return $output; } $items = list_items($array); print_r($items);
Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.31, 8.2.0 - 8.2.26, 8.3.0 - 8.3.14, 8.4.1
Array ( [0] => Array ( [id] => aed92e32-a88d-11e9-b74b-002522d5a8f5 [name] => 01_ДЛЯ ПРОДАЖ [parent] => 0 ) [1] => Array ( [id] => 776ea23c-4a7a-11ea-a3ba-002522d5a8f5 [name] => Литература [parent] => aed92e32-a88d-11e9-b74b-002522d5a8f5 ) [2] => Array ( [id] => faa0a831-4b3a-11ea-a3ba-002522d5a8f5 [name] => Журналы учета [parent] => 776ea23c-4a7a-11ea-a3ba-002522d5a8f5 ) )

preferences:
94.2 ms | 408 KiB | 5 Q