add menu page in loop menu order

Ok it took me a while, but I think I have it. I had to use usort. I also included the code for the get_top_level_pages() method.

    $my_wp_query = new WP_Query();
    $all_wp_pages = $my_wp_query->query(array('post_type' => 'page', 'posts_per_page' => '-1'));
    $top_level_pages =  get_page_by_title('Locations');
    $menuArray = get_page_children( $top_level_pages->ID, $all_wp_pages );
    function compareOrder($a, $b) {
        return $a->menu_order - $b->menu_order;
    }
    usort($menuArray, 'compareOrder');

or, as I found out later I could just replace the last value in my array with:

public function create_custom_menu() {
    $menuArray = $this->get_top_level_pages();
        foreach ($menuArray as $key => $value) {
            add_menu_page( 
                $value->post_title, 
                $value->post_title, 
                'manage_options', 
                $value->post_name.'-admin-page', 
                array( $this, 'create_admin_page'), 
                'dashicons-admin-home' ,
                $value->page_attributes->menu-order
            );
      }
}

or even easier, I could have just added 'orderby'=>'menu_order' to my query initially.