【问题标题】:Reverse an object with array_reverse PHP使用 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

标签: php arrays xml foreach rss


【解决方案1】:

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

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

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

【讨论】:

  • 史诗般的我不需要孩子位我认为这是从项目中拉出子节点但没有孩子它似乎正在工作
  • 是的,这对我有用。非常感谢你的传奇!
  • 完美解决方案。非常感谢。
猜你喜欢
  • 2019-06-01
  • 1970-01-01
  • 2018-12-02
  • 1970-01-01
  • 2013-03-11
  • 2012-05-27
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多