我编写了一个代码,我想在关联数组中添加一些数据。我想使用array_push,但我想我应该向社区请求这种做法。我这样做是正确的吗?我想要实现的是,for循环数据的每个索引都应该添加到数组中,但是每次我想的时候都会创建一个新的实例。选项是数组,id_option和name应该在数组的每个索引中,就像在查找数据时一样,它应该是$options[0]['id_option']
。
for ($mn = 0; $mn < sizeof($pages); $mn++) {
$options = array(
array(
'id_option' => $pages[$mn]['meta_title'],
'name' => $pages_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();//init the array options
for ($mn = 0; $mn < sizeof($pages); $mn++) {
$options[] = array(
'id_option' => $pages[$mn]['meta_title'],
'name' => $pages_links[$mn]['link'],
);
}
print_r($options);
注意$ 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 = []; // defines the array
for ($mn = 0; $mn < sizeof($pages); $mn++) {
$options[] = array(
'id_option' => $pages[$mn]['meta_title'],
'name' => $pages_links[$mn]['link'],
);
}
谢谢。
你上面做的是每次都会覆盖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();
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'];
}