Php 循环内部关联数组
我已经编写了一段代码,希望在关联数组中添加一些数据。我想使用array_push,但我想我应该向社区询问这种做法。我这样做对吗?我想要实现的是,对于for循环数据的每个索引,都应该将其添加到数组中,但在这里,我认为每次都会创建一个新实例。选项是数组,id\u选项和名称应该在数组的每个索引中,就像查找数据时一样,它应该是Php 循环内部关联数组,php,associative-array,Php,Associative Array,我已经编写了一段代码,希望在关联数组中添加一些数据。我想使用array_push,但我想我应该向社区询问这种做法。我这样做对吗?我想要实现的是,对于for循环数据的每个索引,都应该将其添加到数组中,但在这里,我认为每次都会创建一个新实例。选项是数组,id\u选项和名称应该在数组的每个索引中,就像查找数据时一样,它应该是$options[0]['id\u option'] for ($mn = 0; $mn < sizeof($pages); $mn++) { $options =
$options[0]['id\u option']
for ($mn = 0; $mn < sizeof($pages); $mn++) {
$options = array(
array(
'id_option' => $pages[$mn]['meta_title'],
'name' => $pages_links[$mn]['link'],
)
);
}
for($mn=0;$mn$pages[$mn]['meta_title'],
'name'=>$pages\u links[$mn]['link'],
)
);
}
我也试过这样做,但不起作用,下面的语法错误(这只是出于理论目的:
$options = array(
for ($mn = 0; $mn < sizeof($pages); $mn++) {
array(
'id_option' => $pages[$mn]['meta_title'],
'name' => $pages_links[$mn]['link'],
)
}
);
$options=array(
对于($mn=0;$mn$pages[$mn]['meta_title'],
'name'=>$pages\u links[$mn]['link'],
)
}
);
您想要这个:
$options = array();
for ($mn = 0; $mn < sizeof($pages); $mn++)
{
$options[$mn] = array();
$options[$mn]['id_option'] = $pages[$mn]['meta_title'];
$options[$mn]['name'] = $pages_links[$mn]['link'];
}
$options=array();
对于($mn=0;$mn
$options=array();//初始化数组选项
对于($mn=0;$mn$pages[$mn]['meta_title'],
'name'=>$pages\u links[$mn]['link'],
);
}
打印(可选);
注意$option变量后面的括号-这将告诉PHP向数组$options添加一个值您希望添加它,而不是覆盖它,因此使用
$options[]=x
好的做法是在循环上方定义空数组,这样在代码的另一部分中,您至少可以使用一个数组(空或不空),而不是未定义的var
// define $options as an array
$options = [];
// add array with data to $options array
for ($mn = 0; $mn < sizeof($pages); $mn++) {
$options[] = [
'id_option' => $pages[$mn]['meta_title'],
'name' => $pages_links[$mn]['link'],
];
}
//将$options定义为数组
$options=[];
//将包含数据的数组添加到$options数组
对于($mn=0;$mn$pages[$mn]['meta_title'],
'name'=>$pages\u links[$mn]['link'],
];
}
我还删除了第二个嵌套数组。您的第二个代码不起作用。但是您可以稍微更改第一个代码,使其起作用
$options = []; // defines the array
for ($mn = 0; $mn < sizeof($pages); $mn++) {
$options[] = array(
'id_option' => $pages[$mn]['meta_title'],
'name' => $pages_links[$mn]['link'],
);
}
$options=[];//定义数组
对于($mn=0;$mn$pages[$mn]['meta_title'],
'name'=>$pages\u links[$mn]['link'],
);
}
- $options=[]定义数组
- 然后for循环遍历数据
- 每次循环运行时,PHP都会使用array()函数创建新的关联数组,并将其作为新元素添加到$options数组中
- 最后,您将得到一个多维数组。($options)
谢谢。以上操作每次都会覆盖选项数组 不是100%确定你想做什么,但尝试以下方法:
$options = array();
for ($mn = 0; $mn < sizeof($pages); $mn++) {
$key = $pages[$mn]['meta_title'];
$value = $pages_links[$mn]['link'];
$options[$key] = $value;
}
var_dump($options);
$options=array();
对于($mn=0;$mn
因为我不知道你的原始数据是什么样子的,所以测试它是否有效有点困难
希望有帮助。将行
$options=array(
更改为$options[]=array(
)?我可以试试看它是否有效。$options.push,这看起来像是与Javascript的混合。这给了我想要的。谢谢。我也尝试过。它可以工作,但我选择的更接近我的代码。+1:D
$options = array();
for ($mn = 0; $mn < sizeof($pages); $mn++) {
$key = $pages[$mn]['meta_title'];
$value = $pages_links[$mn]['link'];
$options[$key] = $value;
}
var_dump($options);