[英]XML Multidimensional Array, Sort and reference
我真的根本沒有得到數組,我已經閱讀了很多例子,大部分抄襲和修改過,還沒有找到幫助,我知道我希望有人可以幫助我,所以我完全理解。
我有一個XML文件,我需要閱讀和顯示該文件,並帶有使用PHP進行排序的選項,然后將必填字段輸出到我的頁面中。 我設法獲取了XML文件並在本地進行了重新安置,並檢查了文件的使用期限(里程碑),並使用下面的代碼成功讀取了XML文件並將其輸出為數組,但是在兩次之后,我再也找不到了我向您社區尋求幫助的日子:
<?php
function std_class_object_to_array($stdclassobject) {
$_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : $stdclassobject;
foreach ($_array as $key => $value) {
$value = (is_array($value) || is_object($value)) ? std_class_object_to_array($value) : $value;
$array[$key] = $value;
}
return $array;
}
$request = $domain.$filename;
$API_results = file_get_contents($request);
$xml = new SimpleXMLElement($API_results);
$Details = std_class_object_to_array($xml);
echo "<pre>";
print_r($Details[hotel]);
echo "</pre>"; ?>
輸出看起來像這樣(縮短)
Array
(
[0] => Array
(
[hotel_ref] => 157258
[hotel_name] => Hotel Kong Arthur
繼續
[1] => Array
(
[hotel_ref] => 98813
[hotel_name] => Hotel Lautruppark
首先,我用來閱讀XML的代碼是否很好? 有沒有更好的方法可以使用? 如何排序結果? 如何輸出各個字段?
您的幫助,示例和指導將不勝感激,
斯圖
// -----------------------更新----------------------- \\
好的,所以這是我現在建議使用SimpleXML的地方,但是它仍然不正確,在以下方面,我的確不是很多:
$request = $domain.$filename;
$xmlobj = simplexml_load_file($request);
$xml = simplexml_load_file($request) or die("NO XML");
foreach($xml as $hotels)
echo $hotels->hotel_name." (".$hotels->hotel_ref.")<br/>";
您編寫的用於讀取XML的代碼絕對不錯。
但是,您不必要將SimpleXMLElement對象轉換為數組,因為SimpleXMLElement已經可以迭代。 您可以像下面這樣簡單地訪問XML的<hotel>
元素:
$Details->hotel[0]
您可以通過以下方式遍歷<hotel>
的子元素:
<?php
// Loop through the elements, and with each...
foreach($Details->hotel[0] as $index => $hotel) {
// ...output the name of the hotel:
echo $hotel->hotel_name;
}
?>
在這里, $index
將是數字索引,而$hotel
將是另一個SimpleXMLElement。
注意:就結果排序而言,實際上值得進行對象到數組的轉換。 PHP中的所有排序功能都適用於數組, 而不適用於對象。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.