array_reverse не выполняет свою функцию
$url = "https://www.om1.ru/news/rss/";
$xml = simplexml_load_file($url);
$json = json_encode($xml);
$array = array_reverse(json_decode($json,TRUE));
print_r($array);
По логике array_reverse должен вернуть массив с элементами в обратном порядке, но на деле этого не происходит. Подскажите, пожалуйста, в чем заключается проблема?
Ответы (1 шт):
Автор решения: Павел Ериков
→ Ссылка
array_reverse правильно работает. У вас json_decode возвращает массив, в котором идет сначала [@attributes], а потом [channel] и после выполнения функции array_reverse у вас [@attributes] окажется в конце.
И тут смотря что вам нужно перевернуть. Судя по структуре, вам нужно перевернуть [item] то есть элементы канала "Последние новости".
Если это так, то нужно писать так:
$url = "https://www.om1.ru/news/rss/";
$xml = simplexml_load_file($url);
$json = json_encode($xml);
$data = json_decode($json, TRUE);
//Обращаемся к `channel`, а потом к `item` и в итоге мы получим
//массив новостей, который потом переворачиваем
$array = array_reverse($data['channel']['item']);
print_r($array);