Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP根据每天发布的小时和分钟创建多维数组_Php_Date_Schedule - Fatal编程技术网

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"
  }
}