2012-06-12 3 views
2

필드 배열에 따라 다음과 같은 2D 배열을 정렬하고 싶습니다.2D 배열 정렬

Array 
(

[0] => Array 
(
    [from] => 44.91 
    [to] => 53.56 
    [next] => 108.88 
    [year] => 2011 

), 
[1] => Array 
(
    [from] => 44.44 
    [next] => 53.16 
    [year] => 2010 

), 
[2] => Array 
(
    [from] => 42.83 
    [next] => 51.36 
    [year] => 2012 
) 
); 

그래서 원하는 결과는 다음과 같습니다

Array 
(
[1] => Array 
(
    [from] => 44.44 
    [next] => 53.16 
    [year] => 2010 

), 
[0] => Array 
(
    [from] => 44.91 
    [to] => 53.56 
    [next] => 108.88 
    [year] => 2011 

), 
[2] => Array 
(
    [from] => 42.83 
    [next] => 51.36 
    [year] => 2012 
) 
); 

답변

1

당신이 uasort()를 사용하여 시도 적이 있습니까?

function cmp_year($a, $b) { 
    if($a['year'] == $b['year']) return 0; 
    return ($a['year'] < $b['year']) ? -1 : 1; 
} 

uasort($your_array, 'cmp_year'); 
1

array_multisort()을 사용할 수 있습니다.

foreach ($arr as $k => $v) { 
    $years[$k] = $v['year']; 
} 

array_multisort($years, SORT_DESC, $arr); 
+0

중첩 된 배열에 대해 동일한 작업을 수행하는 방법 및 정렬 할 값이 중첩 된 배열 내부에서 작동하지 않습니다. –