Значения запроса API GET не могут быть установлены в переменные и выводятся с помощью curl json_decode в PHP - PullRequest
0 голосов
/ 10 апреля 2020

Почему я не могу отобразить $ phone_number в этом коде? Там написано

Неопределенный индекс: номер_телефона. но когда я повторяю $response, он возвращает значения

    <?php

        $ch = curl_init( 'https://mighty-inlet-78383.herokuapp.com/api/hotels/imagedata');
        curl_setopt_array($ch, array(
            CURLOPT_RETURNTRANSFER => TRUE
        ));

        // Send the request
        $response = curl_exec($ch);

        // Check for errors
        if($response === FALSE){
            die(curl_error($ch));
            echo 'No responce';
        }

        // Decode the response
        $responseData = json_decode($response);

        // Print the date from the response
        $phone_number = $responseData['phone_number'];
        echo $phone_number;
   ?>

1 Ответ

4 голосов
/ 10 апреля 2020

Поскольку это массивы внутри массивов, вам нужно go на один уровень глубже, чтобы получить нужные данные. Сначала убедитесь, что вы возвращаете JSON как массив, используя атрибут 'true':

$responseData = json_decode($response, true);

Затем вы можете получить первый номер телефона (или любой номер телефона, изменив индекс массива). ):

echo $responseData[0]['phone_number'];
echo $responseData[1]['phone_number'];

Вы также можете l oop через ответы:

foreach($responseData AS $response) {
    echo $response['phone_number'];
}
...