循环并将PHP多维数组插入mysql

循环并将PHP多维数组插入mysql,php,mysql,sql,arrays,task,Php,Mysql,Sql,Arrays,Task,我在php中有一个多维数组 看起来像这样: Array ( [0] => Array ( [day] => 0 [periods] => Array ( [0] => Array ( [0] => 01:00 [1] =

我在php中有一个多维数组 看起来像这样:

 Array
    (
    [0] => Array
    (
        [day] => 0
        [periods] => Array
            (
                [0] => Array
                    (
                        [0] => 01:00
                        [1] => 01:30
                    )

                [1] => Array
                    (
                        [0] => 02:30
                        [1] => 03:00
                    )

            )

    )

[1] => Array
    (
        [day] => 1
        [periods] => Array
            (
                [0] => Array
                    (
                        [0] => 01:30
                        [1] => 02:00
                    )

            )

    )
“day”键引用日期so day[0]=“星期一” “periods”键表示用户在同一天选择的小时数

因此,在天[0]中有一个“periods”数组,它引用存储小时的antor数组,start 01:00,end 01:30 start 02:30,end 03:00

我试图foreach循环这个数组,但找不到方法。 我想为mysql输入每小时的值,如下所示:

    $sql  = "INSERT INTO task_list (
            task, day, hour
            ) VALUES (?, ?, ?)
    ";  
例:日期:0开始1:00,日期:0结束1:30


有什么建议吗?

这是您的解决方案

$array = array(
        array(
            'day' => 0,
            'periods' => array(
                array('01:00','01:30'),
                array('02:00','03:00'),
            )
        ),
        array(
            'day' => 1,
            'periods' => array(
                array('01:00','02:00')
            )
        )
    );

   //echo "<pre>";print_r($array);

   $values = '"INSERT INTO task_list ( task, day, hour ) VALUES';
   foreach($array as $row){
        foreach($row['periods'] as $row1){
                $values .= '("start","'.$row['day'].'","'.$row1[0].'"),("end","'.$row['day'].'","'.$row1[1].'"),';
        }
   }
   $values .= ';"';
   $values = str_replace(',;',';',$values);
   echo $values;
$array=array(
排列(
“日”=>0,
'周期'=>数组(
数组('01:00','01:30'),
数组('02:00','03:00'),
)
),
排列(
“天”=>1,
'周期'=>数组(
数组('01:00','02:00')
)
)
);
//回声“;打印(数组);
$values='“插入任务列表(任务、日期、小时)值”;
foreach($array作为$row){
foreach($row['periods']作为$row1){
$values.='(“开始”、“.$row['day']..”、“.$row1[0]..”、(“结束”、“.$row['day'.]”、“.$row1[1].”);
}
}
$values.=';“;
$values=str_replace(“,;”,“;”,$values);
回声$值;

在我从mysql检索数据后,有没有办法用相同的结构恢复数组?嗨,Gyandeep,我正在尝试将SQL查询的结果转换为数组格式,但我仍然没有找到方法。我做了一个foreach,我得到的最好的结果就是在同一天将数组分开,当然我会添加这个if($result){$k=0;foreach($result as$i=>$row){$data[$i][“day”][“day”]=$row[“day”];$data[$i][“periods”[$k]=array();array\u push($data[$i][“periods”[$k],$row[“start\u hour”],$row[“stop\u hour”];$k++}$row\u set=$data;返回$row\u set;}