使用 array_reverse PHP 反转对象

har*_*rri 2 php xml arrays rss foreach

我正在尝试处理 RSS 提要,但想反向执行,以便最后导入最新项目以保持顺序正确。

$content = file_get_contents($feed_url);
$rss = new SimpleXmlElement($content);
$rss = array_reverse($rss);
foreach($rss->channel->item as $entry) {
  echo $entry->title;
}
Run Code Online (Sandbox Code Playgroud)

然而上面只是抛出array_reverse() expects parameter 1 to be array&Invalid argument supplied for foreach()错误。我怎样才能反转数组,以便 for each 向后工作?

Bar*_*mar 5

$rss->channel->item是一个SimpleXMLElement对象,而不是一个数组。您可以使用 进行迭代foreach,但其他数组操作将不起作用。

如果要反向迭代,请获取计数,然后通过其索引访问每个元素,向下计数索引。

$items = $rss->channel->item;
$count = count($items);
for ($i = $count-1; $i >= 0; $i--) {
    echo $items[$i]->title;
}
Run Code Online (Sandbox Code Playgroud)