2010-12-02 6 views
0

各データベースのデータベースとドキュメントのリストをdatabasenameでソートしようとしています。 はその後審議形式ここシンプルなXML名前に基づいてソート

でそれらをプリントアウトし、XML

<responsedata> 
<databases> 
<database> 
<name>Test</name> 
<documents>0</documents> 
</database> 
− 
<database> 
<name>Test2</name> 
<documents>0</documents> 
</database> 
</databases> 
</responsedata> 

ここでは、ソートすることなく、データベースや文書を一覧表示し、リスト内でそれらをプリントアウトし、私の現在のコードです。

$request_url = "http://255.255.255.255/xmlfile"; 

$xml = simplexml_load_file($request_url) 

foreach ($xml->responsedata->databases->database as $db) { 

      echo"<tr><td>",$db->name,"</td><td>",$db->documents,"</td></tr>\n"; 
    } 

//

+0

'ます。' –

答えて

2
$dbs = array(); 

foreach ($xml->responsedata->databases->database as $db) { 
    $dbs[(string)$db->name] = $db; 
} 

ksort($dbs); 

foreach ($dbs as $db) { 
    echo"<tr><td>",htmlentities($db->name),"</td>", 
     "<td>",htmlentities($db->documents),"</td></tr>\n"; 
} 
+0

何も出力は$ DBSと$ DBと間違って何かがおそらくありませんか? – Bucabear

+0

@Bucabear:変更されたコードを参照してください。 '$ db'(型' SimpleXMLElement')を文字列に明示的にキャストしなければ、PHPは配列のインデックスを受け付けません。 – Tomalak

+0

パーフェクト!本当にありがとう :) – Bucabear

関連する問題