2013-02-15 46 views
0

我使用這個代碼,但如果我用array_push()它,我用array_push陣列爲什麼我不需要在關聯數組中使用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); 
    } 
} 

在輸入值插入值與null但是當我使用此它被在陣列中自動添加值,沒有使用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_push如何地獄它是在末尾標註的值沒有array_push的陣列?

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

回答

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()將一個元素添加到陣列中,最好使用$數組[] =,因爲這樣有沒有調用函數的開銷。

+0

羅,返回我空值 – 2013-02-15 17:49:39

+0

@CreepyFrog索引這是因爲你還沒有定義'$ _SESSION ['selected_record'] [$ pageno]'作爲一個數組。 – Antony 2013-02-15 17:54:50

+0

我是否需要先將數組推到數組中? – 2013-02-15 18:00:25

0

這是因爲額外的[] 刪除它,它會工作:

array_push($_SESSION['selected_record'][$pageno], $check_rec_num); 
相關問題