0

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>";
4

2 に答える 2

1

これは、次の3つのステップで実行できます。

// 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>';
于 2012-06-29T10:24:18.140 に答える
0

選択ボックスを作成する前に配列を使用できます。

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>";

そのブラインドショット...うまくいくはずです。

于 2012-06-29T10:27:11.483 に答える