是否可以将 $_SESSION 变量保存到数组中?

Is it possible to save $_SESSION variables to an array?

我是 PHP 的新手,但知道 $_SESSION 本身是一个数组。

我有一个带有一些单选按钮的表单。该按钮将一些数据发送到新的 .php 文件。在一些脚本之后,它会跳回到第一个 .php 页面,其中包含 html 表单。 这就是问题所在:如果再次单击该按钮,新数据将覆盖第一次的数据。但我想保存所有选择的数据 - 如果用户多次使用按钮。

我需要使用 $_SESSION,因为我想在第一页上打印值。

还是使用(这么多)$_SESSION 变量是错误的?

首先,$_SESSION 是 PHP superglobals 之一。但是,就您的目的而言,它实际上与任何其他变量相同 e.g. $randomVariable。关键区别在于 $_SESSION 在页面加载之间保持不变。

既然如此,我们可以将其设为如下数组:

$_SESSION["dataForms"] = [];

然后我们可以添加 子数组 像:

$_SESSION["dataForms"][] = [
    $_POST["formButton1"],
    $_POST["formButton2"],
    $_POST["formButton3"]
];

如果您以这种方式添加多个(例如三种形式),那么您将得到:

print_r($_SESSION);

/*
Array
(
    [dataForms] => Array
        (
            [0] => Array
                (
                    [0] => button1Value
                    [1] => button2Value
                    [2] => button3Value
                    [3] => button4Value
                    [4] => button5Value
                    [5] => button6Value
                )

            [1] => Array
                (
                    [0] => button1Value
                    [1] => button2Value
                    [2] => button3Value
                    [3] => button4Value
                    [4] => button5Value
                    [5] => button6Value
                )

            [2] => Array
                (
                    [0] => button1Value
                    [1] => button2Value
                    [2] => button3Value
                    [3] => button4Value
                    [4] => button5Value
                    [5] => button6Value
                )

        )

)
*/