Nig*_*awk 2 php arrays session
我有一个调查脚本,每页有3个问题.当用户回答第一页上的问题并单击下一步时,$_SESSION['survey']['data']
通过执行以下操作存储上一页中的数据:
$data = postToArray($_POST, $ignore_fields);
$_SESSION['survey']['data'] = $data;
Run Code Online (Sandbox Code Playgroud)
$data
是一个看起来像这样的数组:
array('question' => 'answer', 'question' => 'answer');
Run Code Online (Sandbox Code Playgroud)
postToArray
在返回之前,做一些检查并稍微操纵实际提交$data
.
当用户在调查的第二页时,同样的事情发生了.我假设当$data
被添加到会话时,$_SESSION['survey']['data'] = $data;
如果'question'
(密钥)不存在,它将附加到会话数组,但是如果它(因为用户转到上一页并更改了他们的答案),那么具有相同键的现有值将被覆盖,但是最后一页的提交将覆盖['data']
会话中数组中的所有内容.来考虑一下,这非常有意义.
我尝试了各种各样的东西,比如检索$_SESSION['survey']['data']
,将它存储在数组中,读取最后一个提交,合并数组,然后在SESSION中重新保存所有内容,但我的代码没有用 - 这种方法有意义吗?那可能吗?
我也试过了array_push
,但那里没有运气.
另外,我尝试添加$_SESSION['survey']['data'][]
,至少保存所有内容(每个提交在自己的数组中),但是如果用户返回页面,他们更改和重新提交的任何值都将添加为另一个数组.
最好是,我想要一个包含所有问题/答案的巨型数组,并且它会不断添加到该数组并使用现有键覆盖任何值.
什么是最好的方法?
谢谢,-Ryan
实施的解决方案
$data = postToArray($_POST, $ignore_fields);
foreach($data as $question => $answer)
{
$_SESSION['survey']['data'][$question] = $answer;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2090 次 |
最近记录: |