Можно ли использовать array_push в массиве SESSION в php?

У меня есть массив, который я хочу на нескольких страницах, поэтому я сделал его массивом SESSION. Я хочу добавить серию имен, а затем на другую страницу, я хочу иметь возможность использовать цикл foreach, чтобы отобразить все имена в этом массиве.

Это сеанс:

$_SESSION['names']

Я хочу добавить серию имен в этот массив, используя array_push, как это:

array_push($_SESSION['names'],$name);

Я получаю эту ошибку:

array_push() [function.array-push]: Первым аргументом должен быть массив

Можно ли использовать array_push для размещения нескольких значений в этом массиве? Или, возможно, есть лучший, более эффективный способ сделать то, что я пытаюсь достичь?

Ответ 1

Да, вы можете. Но первым аргументом должен быть массив.

Итак, вы должны сделать это таким образом

$_SESSION['names'] = array();
array_push($_SESSION['names'],$name);

Лично я никогда не использую array_push, поскольку я не вижу смысла в этой функции. И я просто использую

$_SESSION['names'][] = $name;

Ответ 2

Попробуйте

if (!isset($_SESSION['names'])) {
    $_SESSION['names'] = array();
}
array_push($_SESSION['names'],$name);

Ответ 3

 $_SESSION['total_elements']=array();
 array_push($_SESSION['total_elements'], $_POST["username"]);

Ответ 4

<?php
session_start();

$_SESSION['data']= array();
$details1=array('pappu','10');
$details2=array('tippu','12');

array_push($_SESSION['data'],$details1);
array_push($_SESSION['data'],$details2);

foreach ($_SESSION['data'] as $eacharray) 
{
 while (list(, $value) = each ($eacharray)) 
    {
        echo "Value: $value<br>\n";
    }
}
?>

Выход

Значение: pappu
Значение: 10
Значение: tippu
Значение: 12

Ответ 5

Попробуйте это, он будет работать:

session_start();

if(!isset($_POST["submit"]))
{
    $_SESSION["abc"] = array("C", "C++", "JAVA", "C#", "PHP");
}

if(isset($_POST["submit"]))
{
    $aa = $_POST['text1'];

    array_push($_SESSION["abc"], $aa);

    foreach($_SESSION["abc"] as $key => $val)
    { 
        echo $val;
    }
}