An array is given:

$shop_categories = [ [ 'title' => 'Компьютеры', 'children' => [ [ 'title' => 'Ноутбуки', ], [ 'title' => 'Моноблоки', ], [ 'title' => 'Системные блоки', 'children' => [ [ 'title' => 'Tower', ], [ 'title' => 'Mini Tower', ] ] ] ] ], [ 'title' => 'Бытовая техника', 'children' => [ [ 'title' => 'Пылесосы', ], [ 'title' => 'Холодильники', ] ] ] ]; 

Print the category tree as:

Computers:

  • Laptops
  • Monoblocks
  • System blocks
  • Tower
  • Mini tower

Appliances:

  • Vacuum cleaners
  • Refrigerators

    1 answer 1

     <?php $shop_categories = [ [ 'title' => 'Компьютеры', 'children' => [ [ 'title' => 'Ноутбуки', ], [ 'title' => 'Моноблоки', ], [ 'title' => 'Системные блоки', 'children' => [ [ 'title' => 'Tower', ], [ 'title' => 'Mini Tower', ] ] ] ] ], [ 'title' => 'Бытовая техника', 'children' => [ [ 'title' => 'Пылесосы', ], [ 'title' => 'Холодильники', ] ] ] ]; function write_title($title, $level) { for($i = 0; $i< $level; ++$i) { echo '--'; } echo $title.PHP_EOL; } function print_tree(array $data, $level = 0) { foreach($data as $node) { write_title($node['title'], $level); if(array_key_exists('children', $node)) { print_tree($node['children'], $level + 1); } } } print_tree($shop_categories, 0); 

    result

    • Thank you very much. It works as it should! - Eugene