如何为每个创建一个关联数组?

时间:2013-02-15 17:04:52

标签: php arrays

我选择了复选框,想要保存一个关联数组,当前页面编号$_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']以数组

的形式返回

3 个答案:

答案 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实际上是一个数组且包含足够的元素时,这才有效。