У меня есть массив, который я хочу на нескольких страницах, поэтому я сделал его массивом 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;
}
}