2012-07-03 4 views
0

의 여러 열이 나는 당신이 가격/ID 번호 등을 통해 일부 정보를 정렬 할 수 있도록 배열 정렬 방법을 만들고 싶어PHP 배열 데이터 정렬

내 배열은 다음과 같이이다 :

[1] 1002234985, $123.00, ITEM DESCRIPTION #1 

[2] 1034234985, $143.70, ITEM DESCRIPTION #2 

[3] 1002467455, $133.06, ITEM DESCRIPTION #3 

[4] 1564334985, $883.11, ITEM DESCRIPTION #4 

I 가격별로 배열을 정렬하려고하지만 설명과 ID 번호가 일치해야합니다. 어떻게해야합니까?

감사합니다.

+0

이것은 다차원 배열입니까? –

답변

1

compare 함수 물품 (즉, 하나의 더 큰 두 요소 되돌아 수신)하고

예 사용할 usort을 사용 여기

$arr = array(
       array(1002234985, '125.00', 'ITEM DESCRIPTION'), 
       array(1002234986, '124.00', 'ITEM DESCRIPTION'), 
       array(1002234987, '123.00', 'ITEM DESCRIPTION') 
); 
function mycomp($itm1, $itm2){ 
    if($itm1[1] > $itm2[1]){ 
     return 1; 
    } 
    else if($itm1[1] < $itm2[1]){ 
     return -1; 
    } 
    else{ 
     return 0; 
    } 
} 
usort($arr, 'mycomp'); 
print_r($arr); 
+0

놀라운 작품! 고맙습니다! –

0

사용 다차원 배열을 정렬의 예 PHP의 usort.

// Change this to the index of the key you wish to sort by 
$sortBy = 0; 

$myArray = array(
    array(1002234985, '$123.00', 'ITEM DESCRIPTION #1'), 
    array(1034234985, '$143.70', 'ITEM DESCRIPTION #2'), 
    array(1002467455, '$133.06', 'ITEM DESCRIPTION #3'), 
    array(1564334985, '$883.11', 'ITEM DESCRIPTION #4') 
]; 

usort($myArray, 'cmp'); 

function cmp($a, $b){ 
    if ($a[$sortBy] == $b[$sortBy]) { 
    return 0; 
    } 
    return ($a[$sortBy] < $b[$sortBy]) ? -1 : 1; 
} 
+0

이 코드는 컴파일되지 않습니다! – alfasin

+0

이것은 내가 찾고있는 것처럼 보입니다 - 이것을 시도 할 것입니다! –

+0

@alfasin 권자, 편집/수정 된 세미콜론 중 일부를 잊어 버렸습니다. –