Зацикливание и вставка многомерного массива PHP в mysql

У меня есть многомерный массив в 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[0] = "понедельник", а клавиша "периоды" - к часу, выбранному пользователем в тот же день.

Таким образом, в день [0] есть массив 'period', который ссылается на массив anthor, который хранит час, начало 01:00, конец 01:30, начало 02:30, конец 03:00

Я пытаюсь зациклить этот массив, но не могу найти способ. Я хочу ввести это значение для каждого часа в mysql следующим образом:

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

например: день: 0 начало 1:00, день: 0 конец 1:30

какие-либо предложения?

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;
Другие вопросы по тегам