Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中将单个数组转换为多维数组?_Php_Arrays_Multidimensional Array - Fatal编程技术网

如何在PHP中将单个数组转换为多维数组?

如何在PHP中将单个数组转换为多维数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个数组,看起来像这样: [98] => Array ( [City] => Caracas [Country] => Venezuela [Continent] => Latin America ) [99] => Array ( [City] => Cairo [Country] => Egypt [Continent] => Middle East ) [105] => 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
)
我尝试将此数组排序为多维数组,以便它输出如下内容:

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']);
}  

出于好奇,数组是如何生成的?我有一个返回数组的SQL查询。也许通过SQL分组来组织数据更容易。标题的可能重复会产生误导。问题是如何将一个多维数组转换为另一个具有不同结构的多维数组。