2010-11-19 19 views
1

API çağrısı için sonuçların bir örneği aşağıdadır. Bu sonuçları fiyata göre sıralamak ve dizinin yapısını korumak istiyorum. El kitabından çok sayıda örneği denedim ve aynı zamanda bulduğum kodları çalıştırdım, ancak çalışmasını sağlamak için doğru taramayı göremiyorum. Herhangi bir yardım için minnettar olurum.php, çok boyutlu dizi için ve "fiyat" değeriyle mi kullanılacak?

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

Yaklaşımınız nedir? –

cevap

3

bir işlevi tanımlamak gerekmez, böylece bir kapatma kullanabilirsiniz $array['data'], tesisi

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

Veya PHP 5.3 sıralamak için usort() kullanabilirsiniz:

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

çok zarif! +1 – Patrick

+0

parlak! Teşekkürler ton gnarf !! PHP 5.2.14 kuruldu, bu yüzden ilk örnek sorunsuz çalıştı! – gBarrett

İlgili konular