簡體   English   中英

從JSON獲取嵌套數組

[英]Getting nested array from JSON

是我的JSON。
存儲在名為$onceBooking變量中。

我想從每個booking獲取booking_slots

這是我的代碼:

for ($i = 0; $i < count($onceBooking); $i++) {
    if (count($onceBooking[$i]->bookings) == 0) {
        $onceBooking[$i]->total_days = 0;
    } else {
        $onceBooking[$i]->total_days = count($onceBooking[$i]->bookings);
        $bookings = $onceBooking[$i]->bookings;
        for ($j = 0; $j < count($bookings); $j++) {
            return $bookings[$j]->booking_slots;
        }
    }
}

但是它什么也沒返回。 如果我錯了,請告訴我。
謝謝。

$data = json_decode($onceBooking);

然后,您可以遍歷數據以獲取您的預訂對象。

$result = ["total_days" => 0];

foreach($data as $instance) {
    $result["total_days"] += count($instance->bookings);
    $bookings = $instance->bookings;
    for($i = 0; $i < count($bookings); $i++) {
        return $bookings->booking_slots;
    }
}

-編輯:用於返回總天數和預訂。

$result = ["total_days" => 0, "bookings" => []];

foreach($data as $instance) {
    $result["total_days"] += count($instance->bookings);
    array_push($result["bookings"], $instance->$bookings);
}

return $result;

您必須稍微修改一下代碼,因為您要返回第一個元素的預訂位。

$data = json_decode($onceBooking);
$bookingSlots = array();
for ($i = 0; $i < count($onceBooking); $i++) {
    if (count($onceBooking[$i]->bookings) == 0) {
        $onceBooking[$i]->total_days = 0;
    } else {
        $onceBooking[$i]->total_days = count($onceBooking[$i]->bookings);
        $bookings = $onceBooking[$i]->bookings;
        for ($j = 0; $j < count($bookings); $j++) {
            if (!empty($bookings[$j])) {
                $bookingSlots[$bookings[$j]->id] = $bookings[$j]->booking_slots;
            }
        }
    }
}
return $bookingSlots;

希望這可以幫助。

暫無
暫無

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

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