想知道是否有人可以提供以下帮助。基本上我有一个表格,允许用户选择开始和结束日期,开始时间和结束时间。
用户可以添加时间块,因此他们选择他们想要的信息,发布,然后返回页面,直到他们使用完整按钮处理表单。
我面临的问题是,我需要我的数组将每个帖子附加到我的数组,我有以下代码:
if($this->input->post('submit', TRUE) == 'more')
{
$start_date = $this->input->post('start_date', TRUE);
$start_time = $this->input->post('start_time', TRUE);
$end_time = $this->input->post('end_time', TRUE);
$start_dates['start_date'] = $start_date;
$start_dates['start_time'] = $start_time;
$start_dates['end_time'] = $end_time;
if(isset($this->session->userdata['start_dates']) )
{
$merged = array_merge_recursive($start_dates, $this->session->userdata['start_dates']);
}
else
{
$merged = null;
$this->session->set_userdata('start_dates', $start_dates);
}
问题是,每次添加新时间块时,都会覆盖数组中的一个项目。
阵列的预期输出为:
Array
(
[start_date] => Array
(
[0] => 2012-08-31
[1] => 2012-08-29
)
[start_time] => Array
(
[0] => 08:00
[1] => 09:00
)
[end_time] => Array
(
[0] => 12:00
[1] => 17:00
)
)
在这种情况下总是会覆盖数组键[1],如果我们只添加两个时间块,这不会有问题 - 但是用户需要能够添加超过2个块,总限制由用户自行决定我们稍后会指定的设定限制。
任何人都可以帮助解决逻辑问题。
提前致谢。
标记
答案 0 :(得分:2)
您还需要将合并后的数据保存到会话中,并且数组合并应该应用于会话中存储的数组:
if($this->session->userdata['start_dates'])
{
$merged = array_merge_recursive($this->session->userdata['start_dates'],
$start_dates);
}
else
{
$merged = $start_dates;
}
$this->session->set_userdata('start_dates', $merged);