You need to use multiple loops:
$top_main_menus = get_post_meta( get_post_ID(), 'top_main_menu', true);
if ( !empty( $top_main_menus ) ) {
foreach ( $top_main_menus as $top_main_menu ) {
$sub_top_main_menus = empty( $top_main_menu['sub_top_main_menus'] ) ? array() : $top_main_menu['sub_top_main_menus'];
if ( ! empty( $sub_top_main_menus ) ) {
foreach ( $sub_top_main_menus as $sub_top_main_menu ) {
$text = empty( $sub_top_main_menu['sub_main_menu'] ) ? '' : $sub_top_main_menu['sub_main_menu'];
$link = empty( $sub_top_main_menu['sub_menu_link'] ) ? '' : $sub_top_main_menu['sub_menu_link'];
echo $text;
echo $link;
}
}
}
}