获取$ _SESSION数组值并使用echo显示

时间:2017-11-26 08:19:50

标签: php arrays session

我有ff代码,它将在表单文本字段中输入的值存储到会话数组中,我将其命名为" numbers"。我需要显示数组的值,但每次尝试Array to string conversion in时都会出现错误echo var_dump($value);

我使用<?php session_start(); ?> <html> <head> <title></title> </head> <body> <form method="POST" action="index.php"> <label>Enter a number</label>&nbsp; <input type="text" name="num" required /> <button type="submit">Submit</button> </form> </body> </html> <?php if (isset($_POST["num"]) && !empty($_POST["num"])){ $_SESSION['numbers'][] = $_POST["num"]; foreach($_SESSION as $key => $value){ echo ($value); } } ?> 并验证所有输入的值都存储在会话数组中。

我的目标是每次用户点击提交按钮时将用户输入存储到数组中。

我该如何纠正?

{{1}}

谢谢。

3 个答案:

答案 0 :(得分:1)

执行$_SESSION['numbers'][] = $_POST["num"];时,您正在使$_SESSION['numbers']成为一个数组:所以您需要采用不同的方式,或者检查foreach循环中的$value是否为数组。

if (isset($_POST["num"]) && !empty($_POST["num"])){
    $_SESSION['numbers'][] = $_POST["num"];

    foreach($_SESSION as $key => $value){
        if (is_array($value)) {
            foreach ($value as $valueNested) {
                echo ($valueNested);
            }
        } else {
            echo ($value);
        }
    }
}

OR

if (isset($_POST["num"]) && !empty($_POST["num"])){
    $_SESSION['numbers'] = $_POST["num"];

    foreach($_SESSION as $key => $value){
        echo ($value);
    }
}

后者可能就是你实际想要完成的事情。

答案 1 :(得分:0)

错误是因为SESSION [“numbers”]是一个数组,你可以只回显一个数组。它会抛出一个错误“Array to string converstion”。

遍历数组并打印出来。

答案 2 :(得分:0)

如果您想回显所有输入的数字,则每个周期应为:

foreach($_SESSION[‘numbers’] as $key => $value) {
    echo $value;
}

这是因为$ _SESSION ['numbers']本身就是包含数字的数组。