0

我正在使用此代码,但如果我使用array_push()它是用 插入值null,我正在使用array_push在数组中输入值

foreach ($_POST['record_num'] as $check_rec_num) {
    if(!in_array($check_rec_num, $_SESSION['selected_record'][$pageno])) {
        array_push($_SESSION['selected_record'][$pageno][], $check_rec_num);
    }
}

但是当我使用它时,它会自动在数组中添加值,而不使用array_push为什么会这样?

foreach ($_POST['rec_num'] as $check_rec_num) {
    if(!in_array($check_rec_num, $_SESSION['selected_record'][$pageno])) {
        $_SESSION['selected_record'][$pageno][] = $check_rec_num;
    }
}

第一个例子

Array ( [1] => Array ( [0] => 36 [1] => 35 ) [2] => )

第二个例子(没有小括号)

Array ( [1] => Array ( [0] => 36 [1] => 35 [2] => 34 ) [2] => Array ( [0] => ) )

Array Design 3rd example没有使用array_push它是如何在数组末尾自动添加值而不使用array_push

Array ( 
   [1] => Array ( 
          [0] => 36 
          [1] => 35 
      ) 
   [2] => Array ( 
          [0] => 33 
          [1] => 32
      )
)
4

2 回答 2

2

你有一个额外[]

array_push($_SESSION['selected_record'][$pageno][], $check_rec_num);

这将做到:

$_SESSION['selected_record'][$pageno] = array();
array_push($_SESSION['selected_record'][$pageno], $check_rec_num);

参见手册array_push

注意:如果第一个参数不是数组,array_push() 将引发警告。这与创建新数组的 $var[] 行为不同。

然而,你应该更好地使用,$_SESSION['selected_record'][$pageno][]因为

注意:如果您使用 array_push() 向数组添加一个元素,最好使用 $array[] = 因为这样就没有调用函数的开销。

于 2013-02-15T17:47:34.127 回答
0

那是因为额外的[] Remove it 并且它会起作用:

array_push($_SESSION['selected_record'][$pageno], $check_rec_num);
于 2013-02-15T17:48:20.240 回答