【问题标题】:Loop and Insert PHP multi-dimensional array into mysql循环并将PHP多维数组插入mysql
【发布时间】:2017-12-17 21:48:05
【问题描述】:

我在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] = "monday" 而“句点”键是指用户在同一天选择的小时。

所以在 day[0] 中有一个 'periods' 数组,它引用存储小时的 anthor 数组,开始 01:00,结束 01:30,开始 02:30,结束 03:00

我尝试 foreach 循环这个数组,但我找不到方法。 我想像这样将每小时的这个值输入到mysql:

    $sql  = "INSERT INTO task_list (
            task, day, hour
            ) VALUES (?, ?, ?)
    ";  

ex : day: 0 start 1:00 , day: 0 end 1:30

有什么建议吗?

【问题讨论】:

    标签: php mysql sql arrays task


    【解决方案1】:

    这是您的解决方案....

    $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中检索数据后,有没有办法恢复具有相同结构的数组?
    • 嗨 Gyandeep,我正在尝试将我的 SQL 查询的结果转换为数组格式,但我仍然没有找到方法。我做了一个 foreach,我得到的最好的就是在同一天分开数组
    • 当然我会添加这个
    • if ($result) { $k = 0; foreach ($result as $i => $row) { $data[$i]["day"] = $row["day"]; $data[$i]["周期"][$k] = array(); array_push($data[$i]["periods"][$k], $row["start_hour"], $row["stop_hour"]); $k++; } $row_set = $数据;返回 $row_set; }
    猜你喜欢
    • 1970-01-01
    • 2011-12-12
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 2011-12-06
    • 2012-06-19
    • 1970-01-01
    相关资源
    最近更新 更多