Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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
CodeIgniter:在阵列中使用阵列_Codeigniter - Fatal编程技术网

CodeIgniter:在阵列中使用阵列

CodeIgniter:在阵列中使用阵列,codeigniter,Codeigniter,我正在跟踪分页,并将POST输入存储为数据库中的查询字符串。到目前为止,一切都正常工作,直到,假设我得到一个数组作为POST输入,我无法循环通过它并获得所有数组值并存储到query_数组中(即,在数组中存储数组) 下面是一些片段: $query_array = array( 'gender' => $this->input->post('gender'), 'minage' => $this->input->post('minage'), 'maxage' =

我正在跟踪分页,并将POST输入存储为数据库中的查询字符串。到目前为止,一切都正常工作,直到,假设我得到一个数组作为POST输入,我无法循环通过它并获得所有数组值并存储到query_数组中(即,在数组中存储数组)

下面是一些片段:

$query_array = array(
'gender' => $this->input->post('gender'),
'minage' => $this->input->post('minage'),
'maxage' => $this->input->post('maxage'),
'Citizenship' => $this->input->post('citizenship'), // checkboxes with name citizenship[]
);
这将仅返回最近一次存储的数组值

输出阵列:

Array ( [gender] => 1 [minage] => 18 [maxage] => 24 [Citizenship] => 2 ) 
将查询字符串设置为:

&gender=1&minage=18&maxage=24&Citizenship=2
但是,我的要求是获取“公民身份”数组的所有值,而不是最后存储的值

生成查询字符串所需的输出:

Array ( [gender] => 1 [minage] => 18 [maxage] => 24 [Citizenship] => 2 [Citizenship] => 4 [Citizenship] => 6 ) 
查询字符串:

&gender=1&minage=18&maxage=24&Citizenship[]=2&Citizenship[]=4&Citizenship[]=6
谢谢你的帮助


谢谢。

看起来,code Ignitter不支持未命名的多维数组作为输入,而无需任何黑客攻击

如果可以访问原始$\u POST数据,请尝试替换

$this->input->post('citizenship')

也可以向post数据添加键:

&gender=1&minage=18&maxage=24&Citizenship[0]=2&Citizenship[1]=4&Citizenship[2]=6

我自己修的。我只是在POST数组中循环,得到了各个数组的键和对值

foreach($_POST['Citizenship'] as $k => $v) {
    $Citizenship[$v] = $v;
}
希望这能帮助那些面临类似问题的人

foreach($_POST['Citizenship'] as $k => $v) {
    $Citizenship[$v] = $v;
}