пытаясь получить свойство необъекта в массиве php - PullRequest
0 голосов
/ 17 мая 2018

У меня проблема с декодированием этой строки в массив

$json_array = json_decode($_POST['time_array'],true);

        for ($i = 0; $i < count($json_array); $i++)
        {
            $day = $json_array->day; 
            $start_time = $json_array->start_time;
            $end_time = $json_array->end_time;

            $insert_time="INSERT INTO `nesbaty_working_time` (`provider_id`,
                                              `day`,
                                              `opening_time`, 
                                              `closing_time`, 
                                              `time`, 
                                              `status`) 
                                              VALUES ('".$provider_id."',
                                              '".$day."', 
                                              '".$start_time."',  
                                              '".$end_time."',  
                                              '".$date."',
                                              '".$status."')";
            mysqli_query($con, $insert_time);

        }

Ошибка в получении данных из массива

 Trying to get property of non-object 

и моя строка массива

[{"day":"Monday","start_time":"12 : 00 PM","end_time":"12 : 30 PM"},{"day":"Tuesday","start_time":"12 : 00 PM","end_time":"12 : 30 PM"}]

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Если вы хотите вернуть тип объекта, удалите true из json_decode, например

$json_array = json_decode($_POST['time_array']);

и используйте индекс для доступа к вашим возвращенным данным, как

$day = $json_array[$i]->day; 
$start_time = $json_array[$i]->start_time;
$end_time = $json_array[$i]->end_time;
0 голосов
/ 17 мая 2018

Ваш JSON является многомерным массивом.Вы должны получить к нему доступ с помощью index следующим образом

$json_array[$i]['day'];
$json_array[$i]['start_time'];

Также обратите внимание

json_decode($_POST['time_array'],true); // returns an associative array 

json_decode($_POST['time_array']); // returns an object

Ссылочная ссылка

...