为什么我不需要在关联数组中使用array_push?

问题描述:

我使用这个代码,但如果我用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 
    ) 
) 

您在

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

这是因为额外的[] 删除它,它会工作:

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