2011-09-15 4 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