PHP - 填充多维数组

时间:2014-10-02 09:00:16

标签: php arrays

我希望与各大洲,国家和地区建立阵列。结果看起来像这样:

$arr_continent = array( 
  '7' => array (
    'name' => 'Africa',
    'countries' => array (
      'CG' => array(
        'name' => 'Congo',
        'areas' => array('a', 'b', 'c')),
      'ZF' => array(
        'name' => 'South Africa')
        'areas' => array('a', 'b', 'c')),
    )
  ),
  '2' => array (
    'name' => 'North Amercia',
    'countries' => array (
      'US' => array(
...

我遍历各个国家/地区以填充数组(或至少我正在尝试):

foreach ($countries as $country) {
  $arr_continent[$country->continent_id] = array(
    'name' => $country->name,
    'countries' => array());

  $arr_continents[$country->continent_id]['countries'][$country->id] = array(
    'name' => $country->name,
    ...);
}

但我不能让它发挥作用。我还尝试测试continent_id键是否已经在数组中,但是if (! array_key_exists($country->continent_id, $arr_continent)) {不起作用。

有人能指出我正确的方向吗?

谢谢

1 个答案:

答案 0 :(得分:0)

应该很简单

foreach ($countries as $country) {

    // init a new continent
    if (!isset($arr_continent[$country->continent_id])) {
        $arr_continent[$country->continent_id] = array(
            'name' => $country->continent_name,
            'countries' => array()
        );
    }

    // adding the country
    $arr_continent[$country->continent_id]['countries'][$country->id] = array(
        'name' => $country->name
        'areas' => ...
    );

}

首先,如果需要,你可以创建一个新的大陆。您设置名称并创建一个空的国家/地区数组。然后将国家/地区添加到此数组中。