我正在尝试为事件日历创建多维数组,用户可以在其中动态添加日期。最终结果应如下所示,其中日期是父键,时间是日期的子键:
日期:2018年3月1日|开始时间:上午9点|结束时间:上午11点
日期:2018年3月2日|开始时间:上午9点30分结束时间:上午11点30分
我的HTML表单输入如下,并使用jQuery克隆:
<input type="text" name="training_day[][date]">
<input type="text" name="training_day[date][][start_time]">
<input type="text" name="training_day[date][][end_time]">
我正在将表单数据保存到帖子中,如下所示:
<?php
if (!empty($_POST['training_day'])) {
update_post_meta($pid, 'training_day', $_POST['training_day'])
}
我使用下面的查询,print_r()结果如下:
$training_day = get_post_meta($post->ID, 'training_day', true);
print_r($training_day);
Array (
[0] => Array ( [date] => Thursday, 1 March, 2018 )
[date] => Array (
[0] => Array ( [start_time] => 9.00am )
[1] => Array ( [end_time] => 11.00am )
[2] => Array ( [start_time] => 9.30am )
[3] => Array ( [end_time] => 11.30am )
)
[1] => Array ( [date] => Friday, 2 March, 2018 )
)
但我确实需要这样的东西:
Array (
[0] => Array ( [date] => Thursday, 1 March, 2018 )
[date] => Array (
[0] => Array ( [start_time] => 9.00am )
[1] => Array ( [end_time] => 11.00am )
)
[1] => Array ( [date] => Friday, 2 March, 2018 )
[date] => Array (
[0] => Array ( [start_time] => 9.30am )
[1] => Array ( [end_time] => 11.30am )
)
)
我尝试过各种各样的选项,在start_time和end_time输入的名称属性的各个位置添加[],没有任何运气。
有人可以指出我正确的方向吗?
答案 0 :(得分:0)
<input type="text" value="13:00" name="training_day[date][0][start_time]">
<input type="text" value="15:00" name="training_day[date][0][end_time]">
<input type="text" value="11:00" name="training_day[date][1][start_time]">
<input type="text" value="16:00" name="training_day[date][1][end_time]">
结果:
array(1) {
["training_day"]=>
array(1) {
["date"]=>
array(2) {
[0]=>
array(2) {
["start_time"]=>
string(5) "13:00"
["end_time"]=>
string(5) "15:00"
}
[1]=>
array(2) {
["start_time"]=>
string(5) "11:00"
["end_time"]=>
string(5) "16:00"
}
}
}
}
这应该是您所需要的,只需要声明开始和结束时间。其他值可能会覆盖以前的键。
另外,为什么要多个开始和结束时间?我们可能缺少背景。