Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 - Fatal编程技术网

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

如何使用php向循环中的数组添加元素,php,arrays,Php,Arrays,我正在动态地尝试填充多维数组,但遇到了一些问题 我有一份美国各州的名单。像$states[nc]、$states[sc]这样的关联数组。在我的循环中,我想将城市附加到每个州,这样$states[nc][cities]包含一个城市数组。我被逻辑束缚住了 foreach($states as $state) { $data[$state] = $state; foreach($cities as $city) { $data[$state]['cities'] .= $

我正在动态地尝试填充多维数组,但遇到了一些问题

我有一份美国各州的名单。像$states[nc]、$states[sc]这样的关联数组。在我的循环中,我想将城市附加到每个州,这样$states[nc][cities]包含一个城市数组。我被逻辑束缚住了

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

    foreach($cities as $city) {
      $data[$state]['cities'] .= $city;
     }
}
我知道串联是不正确的,但我不知道如何将元素添加到此数组中。我一直在使用数组_push时出错


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

与不考虑键时添加到数组的方法相同:

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

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

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

foreach($states as $state) {
    foreach($cities as $city) {
       $data[$state][] = $city;
    }
}
这将创建一个如下的数组

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

请参见PHP中的“使用方括号语法创建/修改”

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

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

将内部foreach替换为$data[$state]['cities']=$cities;应该做的,就是这样!我试图把它复杂化,但这给了我正确的结果。谢谢@user9437856是的,这是一行代码,执行并查看并不困难。@Jon,谢谢你的回复。我试图在这里实现您的问题:更简单的语法:$newArray=array\u values($oldArray);
$newArray = array();
foreach($var in $oldArray){
$newArray[] = $var;
}