使用 array_reverse PHP 反转对象

Posted

技术标签:

【中文标题】使用 array_reverse PHP 反转对象【英文标题】:Reverse an object with array_reverse PHP 【发布时间】:2018-10-01 17:05:59 【问题描述】:

我正在尝试处理一个 RSS 提要,但想反过来处理,所以最后导入最新项目以保持顺序正确。

$content = file_get_contents($feed_url);
$rss = new SimpleXmlElement($content);
$rss = array_reverse($rss);
foreach($rss->channel->item as $entry) 
  echo $entry->title;

但是上面只是抛出 array_reverse() expects parameter 1 to be array & Invalid argument supplied for foreach() 错误。如何反转数组以便 for each 向后工作?

【问题讨论】:

你在反转$x,这和 XML 有什么关系? @Barmar 抱歉,复制和粘贴效果不佳。见上文。 $rss 是一个对象,而不是一个数组。 是的,这就是我的问题,然后我想反转一个对象? 你不想反转整个对象,你只想反转$rss->channel->item 【参考方案1】:

$rss->channel->itemSimpleXMLElement 对象,而不是数组。可以用foreach进行迭代,但是其他数组操作就不行了。

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

$items = $rss->channel->item;
$count = count($items);
for ($i = $count-1; $i >= 0; $i--) 
    echo $items[$i]->title;

【讨论】:

史诗般的我不需要孩子位我认为这是从项目中拉出子节点但没有孩子它似乎正在工作 是的,这对我有用。非常感谢你的传奇! 完美解决方案。非常感谢。

以上是关于使用 array_reverse PHP 反转对象的主要内容,如果未能解决你的问题,请参考以下文章

php array_reverse() 函数的使用

如何使用递归用户定义函数模拟 array_reverse()?

php数组

php数组

php - 数组倒序

中文字符串反转