我一直在試圖弄清楚爲什麼我的代碼就像它一樣簡單,並不按照我希望的方式工作。PHP XML反向數組sizeof()和count()返回不正確的值
我遇到的問題是,當試圖檢查反向simplexml數組上的sizeof()或count()時,得到了正確的值。我製作了一個評論表單,將評論存儲到comments.xml中,然後讀取5條最新評論,並將它們列在最新的最上面,最舊的最下面。
我有comments.xml裏面是什麼:
<root>
<entry>
<name>Admin</name>
<comment>Some nice comment</comment>
<postedOn>07.07.2013</postedOn>
<postedBy>***.***.***.***</postedBy>
</entry>
</root>
我有我的.PHP裏面是什麼:
<?php
$xml = simplexml_load_file("comments.xml");
$reverseArray = (array) $xml;
$reverseArray = array_reverse($reverseArray["entry"]);
$limit = sizeof($reverseArray);
//$limit = count($reverseArray);
if($limit > 5){ $limit = 5; }
for ($i = 0 ; $i < $limit; $i++){
echo "<div class='panel'>";
echo "<span style='float: right;'>" . $reverseArray[$i]->postedOn . "</span>";
echo "<span style='float: left;'>" . $reverseArray[$i]->name . "</span>";
echo "<hr>";
echo $reverseArray[$i]->comment;
echo "<br></div>";
}
?>
現在的問題是,當我使用這個只有1內進入評論.xml,它不會讀取它,並且不會在頁面上打印任何內容。每當我添加另一個條目時,它都會顯示它們。
我也嘗試添加一個 - 代碼$漲停檢查之前「還沒有評論。」:
if($limit == 0){ echo "<div class='panel'>No comments. :(</div>";}
而直到第二個評論張貼它是可見的。
我希望有人能夠幫助我解決這個問題,用盡想法。
編輯: 我試圖運行相同的代碼,沒有扭轉數組,它似乎工作得很好。