Как отсортировать массив php принятый из бд по определенному полю?

Пользователь

от gussie.jones , в категории: PHP , 2 года назад

Как отсортировать массив php принятый из бд по определенному полю?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от adrien.waters , 2 года назад

@gussie.jones 

Для сортировки массива в PHP по определенному полю можно использовать функцию usort(). Данная функция позволяет отсортировать массив на основе сравнения элементов с помощью пользовательской функции.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// Предположим, что имеется массив $data, принятый из БД
$data = [
    ['name' => 'John', 'age' => 25],
    ['name' => 'Jane', 'age' => 30],
    ['name' => 'Bob', 'age' => 20]
];

// Функция для сравнения элементов массива по полю 'age'
function compareByAge($a, $b) {
    return $a['age'] - $b['age'];
}

// Сортировка массива по полю 'age'
usort($data, 'compareByAge');

// Вывод отсортированного массива
print_r($data);


В данном примере функция compareByAge() принимает на вход два элемента массива и возвращает разность их значений поля 'age'. Функция usort() принимает на вход массив $data и название функции сравнения 'compareByAge', и сортирует массив по возрастанию поля 'age'.


Аналогично можно произвести сортировку по любому другому полю, заменив название поля в функции compareByAge().