我选择了复选框,想要保存一个关联数组,当前页面编号$_GET['page_no']
作为索引,但只有1个值,为什么没有?
$pageno = $_GET['page_no']; //Say page no is 1
$_SESSION['selected_vals'] = array();
foreach($_POST['record_num'] as $throw_rec_nums) {
$_SESSION['selected_vals'][$pageno] = $throw_rec_nums;
}
我的期望
$_SESSOION['selected_val'] (
[1] => 24
[1] => 46
[1] => 56
)
但即使选择了3个复选框,我也只能获得24个
注意:$ _GET ['page_no']以数组
的形式返回
答案 0 :(得分:3)
$pageno
没有递增。为了将多个值添加到数组中,需要在循环中递增。
解决方案就像:
$_SESSION['selected_vals'][$pageno][] = $throw_rec_nums;
这样,所有记录号都将以指定的页码保存到数组中。
答案 1 :(得分:2)
只有1个值进入,因为您正在替换每个foreach循环上的$ _SESSION ['selected_vals'] [$ pageno]值。
尝试创建一个计数器来索引它
这是一个选项
$_SESSION['selected_vals'] = array();
$_SESSION['selected_vals'][$pageno] = array();
foreach($_POST['record_num'] as $throw_rec_nums) {
$_SESSION['selected_vals'][$pageno][] = $throw_rec_nums;
}
答案 2 :(得分:0)
您不能将数组用作数组索引。你也必须遍历$ pageno,例如使用next():
$array[current($pageno)] = ...;
next($pageno);
请注意,只有当你确定$ pageno实际上是一个数组且包含足够的元素时,这才有效。