2011-09-15 24 views
0

私はこのような配列があります。ソート多次元配列は

Array ( 
    [0] => Array ( 
     [tag] => /nn 
     [count] => 55 
    ) 
    [1] => Array ( 
     [tag] => /vb 
     [count] => 7 
    ) 
) 

を、私はそれをソートしたいです。この例では、すでにそれが欲しいと思っています。カウントでソート。逆順注文の場合はどうなりますか?それをソートするにはどのような機能がありますか?

ありがとうございます。

+0

'sort()'があります。 –

答えて

1

チェックこのコード

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,"order"); 

それとも

私は通常usortを使用し、そして私自身の比較関数を渡します。この場合、非常に簡単です:

function sortByOrder($a, $b) { 
return $a['order'] - $b['order']; 
} 
usort($myArray, 'sortByOrder'); 

あなたの答えを見つけることができます。私の答えをマークし、私に指摘してください、ありがとう。

1
$count = array(); 

// Obtain a list of columns 
foreach ($array as $key => $row) { 
    $count[$key] = $row['count']; 
} 

//sort by count descending 
array_multisort($count, SORT_DESC, $array); 

DOC

0

私はあなたがで並べ替えしたいキーを選択することを可能にする機能hereを書かれまし。 2次、3次などのソート用に複数のキーを指定することもできます。このmake_comparer機能で

、あなたは次のように並べ替えます:このような

uasort($array, make_comparer('count')); 
1

使用usort()を:あなたは、それは順序を逆にしたい場合は

usort($array, function($a, $b) { 
    if ($a['count'] == $b['count']) 
     return 0; 

    return ($a['count'] > $b['count'] ? -1 : 1); 
} 
>

+0

あああ!間違った '' '! – Neal

+0

おっと! 0固定:) – Rijk