// help us break up this data $menus = array(); $c_menu_id = null; $newmenu = false; $menu = null; $c_part_id = null; $part = null; $newpart = false; foreach( $res as $row ) { // new menu or new menu part? $newmenu = $c_menu_id != $row["menu_id"]; $newpart = $c_part_id != $row["part_id"]; if( $newmenu ) { // create a new menu $c_menu_id = $row["menu_id"]; $menu = array(); $menu["title"] = $row["m_title"]; $menu["parts"] = array(); } if( $newpart ) { // create a new menu part $c_part_id = $row["part_id"]; $part = array(); $part["title"] = $row["mp_title"]; $part["items"] = array(); } $item = array(); $item["title"] = $row["title"]; $item["description"] = $row["description"]; $item["cost"] = $row["cost"]; $part["items"][] = $item; /* if( $newpart ) print_r($part); */ if( $newpart ) $menu["parts"][] = $part; // add it to our current menu if( $newmenu ) $menus[] = $menu; // add it to our menus } $data["menus"] = $menus;