如何使用php在循环中向数组添加元素

时间:2012-03-06 10:38:21

标签: php arrays

我正在动态尝试填充多维数组并遇到一些麻烦。

我有一份美国州名单。像我这样的$ states [nc],$ states [sc]等关联数组我希望将城市附加到每个州,所以$ states [nc] [cities]包含一系列城市。我坚持逻辑。

foreach($states as $state) {
    $data[$state] = $state;

    foreach($cities as $city) {
      $data[$state]['cities'] .= $city;
     }
}

我知道连接不正确,但我不确定如何向此数组添加元素。我一直在使用array_push收到错误。

添加这些元素的正确方法是什么?

4 个答案:

答案 0 :(得分:14)

当密钥不是问题时,添加到数组的方式相同:

$data[$state]['cities'][] = $city;

答案 1 :(得分:10)

在PHP中,您可以在不参考实际索引的情况下填充数组。

$newArray = array();
foreach($var in $oldArray){
$newArray[] = $var;
}

答案 2 :(得分:2)

要添加元素,请使用空括号。

foreach($states as $state) {
    foreach($cities as $city) {
       $data[$state][] = $city;
    }
}

这会创建一个像这样的数组

array(
  'nc' => array('city1', 'city2', ...),
  'sc' => array('city1', 'city2', ...)
)

请参阅“使用方括号语法创建/修改”

下的manual

答案 3 :(得分:1)

foreach($states as $state) {
    $data[$state] = $state;

    foreach($state->cities as $city) {
      $data[$state][] = $city;
    }
}

使用空括号为数组添加元素。