在php

时间:2018-08-04 03:52:55

标签: php xml reverse

这是我的php代码

$xml=simplexml_load_file("data/listings.xml") or die("Error: Cannot create object");
foreach($xml->children() as $listings){
 echo "<div class='col-md-4 top-text'>";
 echo "<a href='?p=single&n=" . $listings->time . "'><img src='thumbnails/" . $listings->images . ".jpg' class='img-responsive' alt=''></a>";
 echo "<h5 class='top'><a href='?p=single&n=" . $listings->time . "'>" . $listings->title . "</a></h5>";
 echo "</div>";
}

我无法使用下面的代码从头开始阅读。

foreach(array_reverse($xml->children()) as $listings){
 echo "<div class='col-md-4 top-text'>";
 echo "<a href='?p=single&n=" . $listings->time . "'><img src='thumbnails/" . $listings->images . ".jpg' class='img-responsive' alt=''></a>";
 echo "<h5 class='top'><a href='?p=single&n=" . $listings->time . "'>" . $listings->title . "</a></h5>";
 echo "</div>";
}

1 个答案:

答案 0 :(得分:2)

在SimpleXMLElement上调用children()时,将获得另一个SimpleXMLElement而不是数组,因此无法在其上调用array_reverse()。一种简单的解决方法是改为使用for()循环...

for ( $i=$xml->children()->count()-1; $i>=0; $i-- )    {
    $list = $xml->children()[$i];
    echo "<div class='col-md-4 top-text'>";
    echo "<a href='?p=single&n=" . $listings->time . "'><img src='thumbnails/" . $listings->images . ".jpg' class='img-responsive' alt=''></a>";
    echo "<h5 class='top'><a href='?p=single&n=" . $listings->time . "'>" . $listings->title . "</a></h5>";
    echo "</div>";
}

通常可以在foreach()中使用它的原因是它实现了Traversable,它使您可以像使用数组一样使用各种方法对其进行处理。