How to list 2 taxonomy terms for a post, based on their hierarchy

I managed to hack this together using wp_get_object_terms. The 'orderby' => 'term_id' was most helpful. It’s probably not the best method, but seems to work fine. Because the child terms (suburbs) are always created after the parent terms (Cities), they will always have a higher ID.

<?php 
$terms = wp_get_object_terms($post->ID, 'location', array('orderby' => 'term_id', 'order' => 'DESC') );

if ( !empty( $terms ) ) :

    $location = array();
    foreach ( $terms as $term ) {
         $location[] = $term->name;
    }
    echo implode(', ', $location);  

endif; 
?>