Como faço para percorrer um repetidor de ACF nested e resultados de grupo?

Eu tenho um campo repetidor ACF nested para exibir vários locais para qualquer região e gostaria de agrupar os resultados por região. Eu fiz algumas pesquisas e acho que preciso de 2 loops, no momento eu tenho apenas uma.

Devo mencionar que estou usando MPV (Model, View, Presenter) no meu projeto wordpress.

Aqui está o código na minha class modelo:

public static function get_locations() { $stack = []; while (have_rows('contact_locations')) { the_row(); $area_title = (get_sub_field('contact_location_area')); while( have_rows('locations') ) { the_row(); $stack[] = [ 'title' => $area_title, 'address' => get_sub_field('contact_location_address'), 'tel' => get_sub_field('contact_location_tel'), 'fax' => get_sub_field('contact_location_fax'), 'email' => get_sub_field('contact_location_email'), 'link' => get_sub_field('contact_location_link'), 'map' => get_sub_field('contact_location_map'), 'directions' => get_sub_field('contact_location_directions_link'), 'map_link' => get_sub_field('contact_location_map_link'), ]; } } return $stack; } 

Meu loop é o seguinte:

 if (!empty(ContactLocationsModel::get_locations())) foreach (ContactLocationsModel::get_locations() as $stack) get_template_partial('partials/page/location', $stack); 

Eu sei que o para cada um está exibindo o título da região / área para cada local, gostaria que ele agrupasse os resultados por região, assim:

East Midlands


Endereço 1

Endereço Linha 1

Endereço linha 2

Endereço linha 3


Endereço 2

Endereço Linha 1

Endereço linha 2

Endereço linha 3

No momento em que a região está sendo repetida e eu quero impedir que isso aconteça. Parece uma coisa simples a fazer, mas não consigo conseguir que funcione.

Solutions Collecting From Web of "Como faço para percorrer um repetidor de ACF nested e resultados de grupo?"