3v4l.org

run code in 300+ PHP versions simultaneously
<?php $categories = array( array( 'parent_id' => 0, 'categories_id' => 1, ), array( 'parent_id' => 1, 'categories_id' => 11, ), array( 'parent_id' => 1, 'categories_id' => 111, ), array( 'parent_id' => 0, 'categories_id' => 2, ), array( 'parent_id' => 2, 'categories_id' => 22, ), ); $tree = array(); foreach ($categories as $category) { $tree = &build(&$tree, $category); } // var_export($tree); function &build(&$tree = array(), $category) { if (empty($category)) { return; } if ($category['parent_id'] == 0 && ! isset($category['childs'])) { $category = array_merge($category, array('childs' => array())); $tree = array_merge($tree, $category); return $tree; } foreach ($tree as $parent_id => $cate) { var_dump($tree); if ($category['parent_id'] == $parent_id) { $cate[$parent_id]['childs'] = $category; } if (is_array($cate)) { return build($tree, $category); } } return $tree; }
Output for 7.1.0 - 7.1.17, 7.2.0 - 7.2.6
Parse error: syntax error, unexpected '&' in /in/W24VF on line 29
Process exited with code 255.

preferences:
179.71 ms | 1395 KiB | 32 Q