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;
    }
}

1例目

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

2 番目の例 (バー ブラケットなし)

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

配列設計 3 番目の例を使用せ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() を使用して配列に要素を 1 つ追加する場合は、関数呼び出しのオーバーヘッドがないため、$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 に答える