2012-07-02 4 views
-1

가능한 중복 :다차원 배열을 내부 배열 키로 정렬하는 방법은 무엇입니까?

Array => (
    [0] => Array(
     [a] => abcd, 
     [b] => 22 
    ), 
    [1] => Array(
     [a] => defg, 
     [b] => 12 
    ), 
    ..... 
) 

내가 인덱스 b의 가치에 의해이 배열을 정렬 할 :
php sort array by sub-value

나는 다음과 같은 다차원 배열을 내부 배열 내림차순으로 정렬하려면 예제가 이제 괜찮습니다. 그러나 오름차순으로 정렬하려는 경우 예상 출력은 다음과 같습니다.

Array => (
    [0] => Array(
     [a] => defg, 
     [b] => 12 
    ), 
    [1] => Array(
     [a] => abcd, 
     [b] => 22 
    ), 
    ..... 
) 

감사합니다.

답변

0

이 기능을 시도 할 수 있습니다 : SO에

$arr = array(
    0 => array('a' => 'abcd','b' => 22), 
     1 => array('a' => 'defg','b' => 12), 
    2 => array('a' => 'dfdf','b' => 32) 
); 

uasort($arr,'mul_sort'); 

function mul_sort($a,$b) 
{ 
    if($a['b'] > $b['b']) 

     return 1;//here,if you return -1,return 1 below,the result will be descending 

    if($a['b'] < $b['b']) 

     return -1; 

    if($a['b'] == $b['b']) 

     return 0; 
} 

print_r($arr); 
output: 
---------- PHP ---------- 
Array 
(
    [1] => Array 
     (
      [a] => defg 
      [b] => 12 
     ) 

    [0] => Array 
     (
      [a] => abcd 
      [b] => 22 
     ) 

    [2] => Array 
     (
      [a] => dfdf 
      [b] => 32 
     ) 

) 
+0

에 오신 것을 환영합니다 :

여기
bool uasort (array &$array , callback $cmp_function) 

내 코드입니다! 코드의 형식을 지정하려면, 4 개의 공백을 사용하거나 줄을' – j0k

관련 문제