在PHP数组中尝试获取非对象属性

3
我在将这个字符串解码为数组时遇到了问题。
$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"}]

var_dump($json_array) 代表什么意思? - hungrykoala
2个回答

4
如果您希望返回对象类型,请从json_decode中删除true,例如:
$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;

2

您的 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

Reference Link


please write in brief.@SAMIR - Jayvirsinh Vaghela

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