循环并插入PHP多维数组到mysql中。

5

我有一个在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"键表示一周的某一天,例如day[0] = "星期一"。而"periods"键则表示用户在同一天所选择的小时数。
因此,在day[0]中有一个“periods”数组,该数组引用另一个数组,存储开始于01:00,结束于01:30,开始于02:30,结束于03:00等时间段。
我尝试使用foreach循环遍历该数组,但我找不到方法。我想将每个小时的值输入到mysql中,如下所示:
    $sql  = "INSERT INTO task_list (
            task, day, hour
            ) VALUES (?, ?, ?)
    ";  

例如:第0天开始时间为1:00,结束时间为1:30

有什么建议吗?

1个回答

0

这是您的解决方案...

$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;

在从mysql检索数据后,有没有一种方法可以使用相同的结构来恢复数组? - pavel250
嗨Gyandeep,我正在尝试将我的SQL查询结果转换为数组格式,但是我还没有找到方法。我使用foreach循环,最好的结果是将同一天的数组分开。 - pavel250
当然,我会添加这个。 - pavel250
如果 ($result) { $k = 0; foreach ($result as $i => $row) { $data[$i]["day"] = $row["day"]; $data[$i]["periods"][$k] = array(); array_push($data[$i]["periods"][$k], $row["start_hour"], $row["stop_hour"]); $k ++;
} $row_set = $data; return $row_set; }
- pavel250

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接