簡體   English   中英

嘗試在PHP中訪問數組內部的JSON數組

[英]Trying to access JSON array inside of array in PHP

大家好,這是我的數組,我想從數組中訪問名為time_array[]的變量

{"type":"updatebusiness","provider_id":"1","business_name":"uur","email_work":"ndnnf@hmdmck.fkfm","phone_work":"8989889889","vat_no":"39r","address1":"gehjfmjhjfk","address2":"gehjfmjhjfk","postcode":"367383","latitude":"updatebusiness","longitude":"updatebusiness","time_array":[{"day":"Monday","start_time":"10 : 00 AM","end_time":"01 : 00 PM"},{"day":"Friday","start_time":"01 : 00 PM","end_time":"01 : 00 PM"}]}

這是我的PHP代碼

$requestBody = file_get_contents('php://input');
$requestBody = json_decode($requestBody, TRUE);



            $time_array=$requestBody['time_array'];
            $json_array = json_decode($time_array,True);

            for ($i = 0; $i < sizeof($json_array); $i++)
            {
                $day = $json_array[$i]->day; 
                $start_time = $json_array[$i]->start_time;
                $end_time = $json_array[$i]->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);

所以我很困惑如何訪問數組內部的數組

您無需再次解碼$ time_array變量。 完成后:

$requestBody = json_decode($requestBody, TRUE);

您可以像這樣訪問time_array:

$time_array = $requestBody['time_array'];

然后,您可以像這樣循環遍歷槽:

foreach($time_array AS $time){
   $day = $time['day'];
   $start_time = $time['start_time'];
   $end_time = $time['end_time'];
   //Your insert query here
}

第一次我已經編碼了數據,所以整個數組都被轉換為php字符串,而里面的第二個數組也被轉換為字符串,但是現在我已經對其進行了編碼,然后再次進行解碼,就可以了。

            $time_array=$requestBody['time_array'];
            $abc=json_encode($time_array);
            $json_array = json_decode($abc);

            for ($i = 0; $i < sizeof($json_array); $i++)
            {


                $day = $json_array[$i]->day; 
                $start_time = $json_array[$i]->start_time;
                $end_time = $json_array[$i]->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);

            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM