Start stmt : PDOStatement::__set_state(array( 'queryString' => 'SELECT p.id, p.category_name, p.category_description, p.category_parent_id FROM category p ORDER BY p.id', )) Tree : array ( ) categorys_arr : array ( 'records' => array ( 0 => array ( 'id' => '1', 'category_name' => 'category root 1', 'category_description' => 'category root 1', 'category_parent_id' => '0', ), 1 => array ( 'id' => '2', 'category_name' => 'branch 1', 'category_description' => 'branch 1', 'category_parent_id' => '1', ), 2 => array ( 'id' => '3', 'category_name' => 'leaf 1', 'category_description' => 'leaf 1', 'category_parent_id' => '2', ), ), ) tree : array ( 0 => array ( 'id' => '1', 'category_name' => 'category root 1', 'category_description' => 'category root 1', 'category_parent_id' => '0', 'child' => array ( 0 => array ( 'id' => '2', 'category_name' => 'branch 1', 'category_description' => 'branch 1', 'category_parent_id' => '1', 'child' => array ( 0 => array ( 'id' => '3', 'category_name' => 'leaf 1', 'category_description' => 'leaf 1', 'category_parent_id' => '2', 'child' => array ( ), ), ), ), ), ), )