Как преобразовать единый массив в многомерный массив в PHP?

Поэтому у меня есть массив, который выглядит так:

[98] => Array ( [City] => Caracas [Country] => Venezuela [Continent] => Latin America ) [99] => Array ( [City] => Cairo [Country] => Egypt [Continent] => Middle East ) [105] => Array ( [City] => Abu Dhabi [Country] => United Arab Emirates [Continent] => Middle East ) [106] => Array ( [City] => Dubai [Country] => United Arab Emirates [Continent] => Middle East ) [107] => Array ( [City] => Montreal [Country] => Canada [Continent] => North America ) 

Я пытаюсь сортировать этот массив в многомерном массиве, так что он выводит что-то вроде:

 Continent - Country Name -- Cities under Every Country 

Я использую PHP. Может ли кто-нибудь указать мне на хорошую отправную точку относительно того, как я должен это делать?

 $array = array( 98 => array( 'City' => 'Caracas', 'Country' => 'Venezuela', 'Continent' => 'Latin America', ), 99 => array( 'City' => 'Cairo', 'Country' => 'Egypt', 'Continent' => 'Middle East', ), 105 => array( 'City' => 'Abu Dhabi', 'Country' => 'United Arab Emirates', 'Continent' => 'Middle East', ), 106 => array( 'City' => 'Dubai', 'Country' => 'United Arab Emirates', 'Continent' => 'Middle East', ), 107 => array( 'City' => 'Montreal', 'Country' => 'Canada', 'Continent' => 'North America', ) ); $newArray = array(); foreach ($array as $row) { $newArray[$row['Continent']][$row['Country']][] = $row['City']; } print_r($newArray); 

Я думаю, вам просто нужно зациклиться в вашем массиве и создать новый, используя некоторые значения в качестве ключей, а некоторые другие как значение, например

 $new_array = array(); foreach($array as $val) { $new_array[$val['Continent']][$val['Country']] = array('City' => $val['City']); } 

Живой пример