2012-02-29 11 views
0

私はこのコードをここに持っており、$ lessons配列を '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

try 'uasort()'第2パラメータとしてコールバック関数を受け取ります。あなたが望む方法で、2つの要素の配列を比較するためにコールバック関数を作成し、

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

が、その後

uasort($lessons, 'lessonCompare'); 
関連する問題