[英]PHP Parse XML and sort Child Nodes alphabetically
我有一個XML文件,並將其解析為我的PHP文檔。 我想按字母順序對XML的子節點進行排序,並在選擇框中顯示它們。 有人可以幫幫我嗎? 我在排序過程中陷入困境... :)
country.xml
<?xml version="1.0"?>
<countries>
<country>
<name>Deutschland</name>
<league>Bundesliga</league>
</country>
<country>
<name>Frankreich</name>
<league>Ligue 1</league>
</country>
<country>
<name>Osterreich</name>
<league>Tipp3-Bundesliga</league>
</country>
<country>
<name>England</name>
<league>Premier League</league>
</country>
<country>
<name>Schweden</name>
<league>Allsvenskan</league>
</country>
<country>
<name>Kanada</name>
<league>Canadian Soccer League</league>
</country>
</countries>
我的PHP代碼如下所示:
echo "<select>";
foreach ($newXml as $item) {
$country=$item->name;
$league=$item->league;
echo $league;
echo "<option>".$country."-".$league."</option>";
}
echo "</select>";
您可以通過三個步驟執行此操作:
// 1. collect
foreach ($newXml as $country) {
$items[] = "{$country->name} - {$country->league}";
}
// 2. sort (on country and league in this case)
sort($items);
// 3. enumerate
echo '<select>';
foreach ($items as $item) {
echo '<option>', htmlspecialchars($item), '</option>';
}
echo '</select>';
您可以在創建選擇框之前使用數組。
echo "<select>";
$temp = array()
foreach ($newXml as $item)
$temp [$item->name] = $item->league;
ksort($temp);
foreach ($teml as $name => $league) {
$country=$name;
$league=$league;
echo $league;
echo "<option>".$country."-".$league."</option>";
}
echo "</select>";
它是盲目的...應該起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.