プロが教えるわが家の防犯対策術!

phpを使用し、WEBサービスで情報を取得して、foreachでデータを表示しています。
表示したデータについて、たとえばアマゾンのWEBサービスであれば、「価格でソート」、という文言をいれ、
それをクリックすると、ソートされる、という風にしたいと思っています。

<?php
$url = "http://~~~~~~";
$params = "?~~~~~
$data = file_get_contents($url . $params);
$data = str_replace(~~~,~~~, $data);
$xml = simplexml_load_string($data);

foreach ($xml->AAA as $aaa) {
echo $aaa->ABC . "<br>";
echo $aaa->BBB->Price . "<br>";
}
?>

というソースですが、「Priceでソート」というクリック可能なアンカーを挿入したいとき、どこにどのように書けばいいのでしょうか?
asort、array_multisort とかを使えばいい、というところまで調べていますが、行き詰っています。 また、手法としては、
(1)取得したxmlデータを保持して、並べ替えるだけ
(2)前述のソースを再利用し、再度xmlを取得しなおし、ただしそのときにソートの条件を付け加える
のどちらかになるのでしょうか。

A 回答 (1件)

foreach ($xml->AAA as $aaa) {


echo $aaa->ABC . "<br>";
echo $aaa->BBB->Price . "<br>";
}
ここの部分を、

$result = array();
foreach($xml->AAA as $aaa){
$result[] = array('id'=>$aaa->ABC, 'price'=>$aaa->BBB->Price);
}

といった感じで配列に書き出して、ソレを、asortなりarray_multisortなりで並べ替えればよいのではないでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!