Как отсортировать ассоциативный массив по полю? - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть этот фрагмент кода, и я хочу отсортировать массив $ уроки по полю «доступно». Сам массив содержит идентификатор урока и время, когда он должен начаться в эпоху. Я хочу отсортировать время с первым, который должен начаться как можно скорее. Я смотрел в Интернете, но я все еще не понимаю, как использовать различные функции сортировки ...

Любая помощь будет великолепна.

    $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']);            
    }

1 Ответ

0 голосов
/ 29 февраля 2012

Попробуйте 'uasort ()' , который получает функцию обратного вызова в качестве второго параметра. Создайте функцию обратного вызова для сравнения двух массивов элементов так, как вы хотите,

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

, затем позвоните

uasort($lessons, 'lessonCompare');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...