Как получить значение ключа в массиве json PHP

Рейтинг: -2Ответов: 1Опубликовано: 20.07.2023

Делаю api запрос к серверу, он мне возвращает ответ в json-формате. Ответ читает и выводится echo на экран, но мне необходимо получить только одно значение одного ключа в массиве - phone.

Приведу пример json:

[{ "status": 23, "last_date": "20.07.2023 09:59:16", "last_timestamp": 1689839956, "flag": 0, "err": 252, "send_date": "20.07.2023 09:59:16", "send_timestamp": 1689839956, "phone": "тут номер телефона будет", "cost": "0.00", "sender_id": "test", "status_name": "���������", "message": "тестовое сообщение", "country": "������", "operator": "������", "operator_orig": "���", "region": "������������� �������", "type": 0 }]

Т.е нужно просто вывести на экран не массив, а значение "phone".

Пробовал сделать, как советовали в комментариях:

$response = '[{ "status": 23, "last_date": "20.07.2023 09:59:16", "phone": 777}]';

$response = json_decode($response, true);

echo $response[0]['phone'];

Выдаёт ошибку:

Warning: Trying to access array offset on value of type null in C:\MAMP\htdocs\sms.php on line 11

Вот весь код:

$response = file_get_contents('https://smsc.ru/sys/get.php?get_messages=1&login=alex&psw=123&cnt=1&fmt=3');

$response = json_decode($response, true);

echo $response[0]['phone'];

Ответ возвращается в формате string от сервера

Ответы

▲ 1

Используйте json_decode() чтобы декодировать строку JSON и [0] чтобы получить данные с первого элемента массива

$response = '[{ "status": 23, "last_date": "20.07.2023 09:59:16", "phone": 777}]';

$response = json_decode($response, true);

echo $response[0]['phone'];