2012-02-29 2 views
0

여기에이 코드가 있는데 'less'배열을 'available'필드로 정렬하려고합니다. 배열 자체에는 수업 ID와 기원이 기원으로 시작되는 시간이 포함됩니다. 나는 가장 먼저 시작해야 할 첫 번째 것과 시간을 분류하고 싶다. 나는 인터넷에서 주위를 둘러 보았지만 여전히 다른 정렬 함수를 사용하는 방법을 이해하지 못합니다 ...연관 배열을 필드별로 어떻게 정렬합니까?

어떤 도움이 될 것입니다.

$lessons = array(); 
    foreach($lessonsArray as $lesson)//for each lesson get the starting time and its lesson id 
    { 
     $lessons[] = array('id' => $lesson['id'], 'available' => $lesson['available']);    
    } 
+0

가능한 중복 : http://stackoverflow.com/questions/777597/sorting-an-associative -array-in-php – Josh

+0

가능한 복제본 : http://stackoverflow.com/questions/2382326/how-to-sort-an-array-based-on-a-specific-field-in-the-array – trutheality

답변

0

두 번째 매개 변수로 콜백 함수를받는 'uasort()'을 시도하십시오.

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

다음 전화를 원하는 방법으로 두 요소 배열을 비교하는 콜백 함수를 작성

uasort($lessons, 'lessonCompare'); 
관련 문제