如何使用php向循环中的数组添加元素
我正在动态地尝试填充多维数组,但遇到了一些问题 我有一份美国各州的名单。像$states[nc]、$states[sc]这样的关联数组。在我的循环中,我想将城市附加到每个州,这样$states[nc][cities]包含一个城市数组。我被逻辑束缚住了如何使用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'] .= $
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;
}