为什么我不需要在关联数组中使用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()将一个元素添加到阵列中,最好使用$数组[] =,因为这样有没有调用函数的开销。
答
这是因为额外的[]
删除它,它会工作:
array_push($_SESSION['selected_record'][$pageno], $check_rec_num);
罗,返回我空值 – 2013-02-15 17:49:39
@CreepyFrog索引这是因为你还没有定义'$ _SESSION ['selected_record'] [$ pageno]'作为一个数组。 – Antony 2013-02-15 17:54:50
我是否需要先将数组推到数组中? – 2013-02-15 18:00:25