Друзья! столкнулся с проблемой. с php на вы, поэтому обращаюсь к вам. работаю с Яндекс апи и при очередном запросе получаю ответ в виде json массива. я его декодирую и end() считываю последние значения. но вот не задача. Иногда, я пока не знаю в чем дело вылазит ошибка end() expects parameter 1 to be array, null given in Каким другим способом можно получить последний элемент массива???
Array ( [data] => Array ( [0] => Array ( [StatusReport] => Done [ReportID] => 613936 ) [1] => Array ( [ReportID] => 613939 [StatusReport] => Done ) [2] => Array ( [ReportID] => 613940 [StatusReport] => Done ) [3] => Array ( [ReportID] => 613941 [StatusReport] => Done ) [4] => Array ( [StatusReport] => Done [ReportID] => 613944 ) [5] => Array ) )
Мой код. на всякий случай:
$result3 = curl_exec($ch); //получил ответ от сервера
curl_close($ch);
$result3 = json_decode($result3, true);
$last_element = end($result3['data']);
$last_report_id = $last_element['ReportID']; //айдишник последнего запроса
$last_status_report = $last_element['StatusReport'];//статус последнего запрос
Спасибо
У Вас $result3['data'] равен null. Почему? Смотрите сами
$response = curl_exec($ch); //получил ответ от сервера
curl_close($ch);
if ($response === false)
die("Content not load");
$result3 = json_decode($response, true);
if (!isset($result3))
die("JSON decode error. " . $response);
if (!isset($result3['data']))
die("Element 'data' not found. " . $response);
$last_element = end($result3['data']);
При определенных обстоятельствах, в вашу функцию end передается значение null вместо массива. Это происходит потому, что функция json_decode() возвращает null. Это может быть связано либо с проблемой в структуре json (синтаксические ошибки и тп.), либо вы вообще не смогли получить json от сервера при curl запросе. Попробуйте провести отладку, чтобы локализовать проблему.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости