2012-03-26 16 views
1

私はここで、このPHPで配列をソートする?

[{"id"="1","rating"=>[{"rating"=>"1"}]},{"id"="2","rating"=>[{"rating"=>"2"}]},{"id"=>"3","rating"=>[{"rating"=>"3"}]}]

のような配列が、私は出力がいずれかが、私はこの

を得ることができる方法を案内してくださいすることができ

[{"id"="3","rating"=>[{"rating"=>"3"}]},{"id"="2","rating"=>[{"rating"=>"2"}]},{"id"=>"1","rating"=>[{"rating"=>"1"}]}] 

で期待する必要がソートキーベースの「評価」が必要持っています

事前に感謝します。

+2

ただ、具体的には、マニュアルを見てみましょう:http://nl3.php.net/manual/en/function.uasort.php – Nanne

+1

また、お使いのアレイ内のすべての '=' '兆候がでなければなりません=> '記号。 – Stefan

答えて

0

yuoはphp関数を使用できます。

評価基準を実装するための関数を用意する必要があります。例

function your_sort($a, $b) 
{ 
    return $b['rating'] - $a['rating']; 
} 

your_sort($array, "cmp"); 
2

については、あなたが鍵を保持する場合:

uasort($data, function($a, $b){ return ($a->rating > $b->rating); }); 

あなたがソースではない

usort($data, function($a, $b){ return ($a->rating > $b->rating); }); 
2
function aasort (&$array, $key) { 
    $sorter=array(); 
    $ret=array(); 
    reset($array); 
    foreach ($array as $ii => $va) { 
     $sorter[$ii]=$va[$key]; 
    } 
    asort($sorter); 
    foreach ($sorter as $ii => $va) { 
     $ret[$ii]=$array[$ii]; 
    } 
    $array=$ret; 
} 

aasort($your_array,"rating"); 

を行う場合:項目ということに注意してくださいSort Multi-dimensional Array by Value

0

配列のオブジェクトはオブジェクトであるように見え、 "rating"プロpertyはおそらく数値に変換されるべき文字列です。

function f_my_sort($a, $b) { 
    if ($a->id==$b->id) return 0; 
    return (intval($a->rating) < intval($b->rating)) ? -1 : 1; 
} 

usort($my_array, "f_my_sort"); 
関連する問題