2010-11-19 19 views
1

API呼び出しの結果のタイプの例を以下に示します。これらの結果を価格で並べ替え、配列の構造を保持したいと思います。私はマニュアルから数多くの例を試してみましたが、私が見つけたコードも正しく動作させるための正しいコンボを得ることはできません。私は本当に助けていただければ幸いです。多次元配列と値 'price'に使用するphpソート?

array(7) { 
    ["errors"]=> array(0) { } 
    ["warnings"]=> array(1) { 
    [0]=> array(2) { 
     ["code"]=> string(26) "api_class_update_available" 
     ["msg"]=> string(58) "The Api class is now available in version 1.6" 
    } 
    } 
    ["data"]=> array(4) { 
    [0]=> array(3) { 
     ["url"]=> string(7) "http://" 
     ["keyword"]=> string(7) "keyword1" 
     ["price"]=> string(5) "23.99" 
    } 
    [1]=> array(3) { 
     ["url"]=> string(7) "http://" 
     ["keyword"]=> string(7) "keyword2" 
     ["price"]=> string(5) "19.99" 
    } 
    [2]=> array(3) { 
     ["url"]=> string(7) "http://" 
     ["keyword"]=> string(7) "keyword3" 
     ["price"]=> string(5) "29.99" 
    } 
    [3]=> array(3) { 
     ["url"]=> string(7) "http://" 
     ["keyword"]=> string(7) "keyword4" 
     ["price"]=> string(5) "9.99" 
    } 
    } 
    ["countryCode"] => string(2) "US" 
    ["page"] => int(1) 
    ["limit"]=> int(4) 
} 
+0

あなたのアプローチは何ですか? –

答えて

3

あなたは関数を定義する必要はありませんので、あなたはクロージャを使用することができ、$array['data']財産

function priceCompare($a, $b) { return $a['price'] - $b['price']; } 
usort($results['data'], 'priceCompare'); 

やPHP 5.3でのソートにusort()を使用することができます。

usort($results['data'], function($a, $b) { return $a['price'] - $b['price']; }); 
+0

非常にエレガント! +1 – Patrick

+0

素晴らしい!ありがとう、トンgnarf! PHP 5.2.14がインストールされたので、最初の例は完璧に機能しました! – gBarrett