PHP根据每天发布的小时和分钟创建多维数组
我正在尝试从表单上发布的属性实现以下数组格式:PHP根据每天发布的小时和分钟创建多维数组,php,date,schedule,Php,Date,Schedule,我正在尝试从表单上发布的属性实现以下数组格式: $schedule = array( 'Mon'=>array('09:00','17:00','16:00','15:00','14:00','13:00','12:00','11:00','10:00'), 'Tue'=>array('17:00','16:00','15:00','14:00','13:00','12:00','11:00','10:00','09:00'), 'Wed'=>array
$schedule = array(
'Mon'=>array('09:00','17:00','16:00','15:00','14:00','13:00','12:00','11:00','10:00'),
'Tue'=>array('17:00','16:00','15:00','14:00','13:00','12:00','11:00','10:00','09:00'),
'Wed'=>array('17:00','16:00','15:00','14:00','13:00','12:00','11:00','10:00','09:00'),
'Thu'=>array('12:00','11:00','10:00','09:00'),
'Fri'=>array('09:00'),
'Sat'=>array('17:00','16:00','15:00','14:00','13:00','12:30','11:00','10:00','09:30'),
'Sun'=>array('17:00','16:00','15:00','14:00','13:00','12:00','11:00','10:00','09:00')
);
在我的表格中,我有单独的小时和分钟选择框来选择每天的小时和分钟(按显示,它们在选项卡中)
其想法是将数组序列化并保存到数据库中。但是我首先需要正确格式的结构
请提供帮助。您需要执行以下操作,而不是数组\u组合
$times = array();
for($x = 0; $x< count($_POST['schedule_hour'][$i]); $x++){
$times[] = $_POST['schedule_hour'][$i][$x].":".
$_POST['schedule_minute'][$i][$x];
}
$times=array();
对于($x=0;$x
因此,您的代码应该如下所示:
for($i = 0; $i < 7; $i++) {
$times = array();
for($x = 0; $x< count($_POST['schedule_hour'][$i]); $x++){
$times[] = $_POST['schedule_hour'][$i][$x].":".
$_POST['schedule_minute'][$i][$x];
}
print_r(array(date('D', strtotime("Monday +{$i} days"))=>$times);
}
($i=0;$i<7;$i++)的{
$times=array();
对于($x=0;$x$times);
}
以下是包含所有必要检查的代码:
$result = array();
for ($i = 0; $i < 7; ++$i) {
if (isset($_POST['schedule_hour'][$i], $_POST['schedule_minute'][$i])
&& is_array($_POST['schedule_hour'][$i])
&& is_array($_POST['schedule_minute'][$i])
&& ($count = count($_POST['schedule_hour'][$i]))
&& ($count === count($_POST['schedule_minute'][$i]))
) {
$add = array();
foreach ($_POST['schedule_hour'][$i] as $k => $hour) {
if (!isset($_POST['schedule_minute'][$i][$k])) {
continue;
}
$hour = (int) $hour;
$minute = (int) $_POST['schedule_minute'][$i][$k];
if (($hour >= 0) && ($hour <= 23)
&& ($minute >=0) && ($minute <= 59)
) {
$add[] = str_pad($hour, 2, '0', STR_PAD_LEFT) . ':' . str_pad($minute, 2, '0', STR_PAD_LEFT);
}
}
if ($add) {
$result[date('D', strtotime("Monday +{$i} days"))] = $add;
}
}
}
$result将存储:
array(2) {
["Mon"]=>
array(4) {
[0]=>
string(5) "02:05"
[1]=>
string(5) "10:15"
[2]=>
string(5) "12:25"
[3]=>
string(5) "13:35"
}
["Thu"]=>
array(2) {
[0]=>
string(5) "11:40"
[1]=>
string(5) "12:50"
}
}
小心,吹坏了。你让它看起来很简单。谢谢。
for($i = 0; $i < 7; $i++) {
$times = array();
for($x = 0; $x< count($_POST['schedule_hour'][$i]); $x++){
$times[] = $_POST['schedule_hour'][$i][$x].":".
$_POST['schedule_minute'][$i][$x];
}
print_r(array(date('D', strtotime("Monday +{$i} days"))=>$times);
}
$result = array();
for ($i = 0; $i < 7; ++$i) {
if (isset($_POST['schedule_hour'][$i], $_POST['schedule_minute'][$i])
&& is_array($_POST['schedule_hour'][$i])
&& is_array($_POST['schedule_minute'][$i])
&& ($count = count($_POST['schedule_hour'][$i]))
&& ($count === count($_POST['schedule_minute'][$i]))
) {
$add = array();
foreach ($_POST['schedule_hour'][$i] as $k => $hour) {
if (!isset($_POST['schedule_minute'][$i][$k])) {
continue;
}
$hour = (int) $hour;
$minute = (int) $_POST['schedule_minute'][$i][$k];
if (($hour >= 0) && ($hour <= 23)
&& ($minute >=0) && ($minute <= 59)
) {
$add[] = str_pad($hour, 2, '0', STR_PAD_LEFT) . ':' . str_pad($minute, 2, '0', STR_PAD_LEFT);
}
}
if ($add) {
$result[date('D', strtotime("Monday +{$i} days"))] = $add;
}
}
}
$_POST['schedule_hour'] = array(
0 => array(2, 10, 12, 13, 26),
3 => array(11, 12, ),
);
$_POST['schedule_minute'] = array(
0 => array(5, 15, 25, 35, 61),
3 => array(40, 50, ),
);
array(2) {
["Mon"]=>
array(4) {
[0]=>
string(5) "02:05"
[1]=>
string(5) "10:15"
[2]=>
string(5) "12:25"
[3]=>
string(5) "13:35"
}
["Thu"]=>
array(2) {
[0]=>
string(5) "11:40"
[1]=>
string(5) "12:50"
}
}