Array_push推送不可见元素,仅在第二次推送时有效

时间:2018-10-31 15:49:17

标签: php arrays

我注意到我的array_push有问题。

所以我在做什么。: 我有一个网站,那里有一些带有特定值的按钮。

每个值都从数据库中获取。

我有一个称为test的会话,该会话被转换为一个数组(以在同一数组中存储多个)

每次单击其中一个按钮时,该特定按钮的值就会被推送到数组中。

但是,我只能看到它已经在第二次尝试中被推了。

[test] => Array( [0] => 21304 )

这是我看到的,经过第二次尝试。但是我的数组数表示该数组中有2个元素。

这是我的代码:

if(isset($_POST['process'])) {
    if(!isset($_SESSION['test'])) {
        $_SESSION['test'] = array();
        $array_merge = array_push($_SESSION['test'], $_POST['process']);
    }
}

$_POST['process']是具有唯一值的按钮。

有人可以看到我在做什么错吗?

亲切的问候

1 个答案:

答案 0 :(得分:1)

如果先前未设置$_SESSION['test'],则仅添加到$_SESSION['test']数组中。

因此,您需要始终将一个事件添加到会话数组,并且仅在之前未设置会话数组的情况下才初始化

session_start();

// ...

if(isset($_POST['process'])) {
    if(!isset($_SESSION['test'])) {
        $_SESSION['test'] = array();
    }
    $_SESSION['test'][] = $_POST['process'];
}
  

从手册中注意

     

如果使用array_push()将一个元素添加到数组中,则最好使用$ array [] =,因为那样就没有调用函数的开销。