Чтобы отсортировать массив по двум столбцам в PHP с помощью usort(), вы можете определить собственную функцию сравнения. Эта функция сравнит значения нужных столбцов и определит их порядок. Вот несколько методов с примерами кода:
Метод 1: использование анонимной функции
usort($array, function($a, $b) {
if ($a['column1'] == $b['column1']) {
return $a['column2'] - $b['column2'];
}
return $a['column1'] - $b['column1'];
});
Метод 2. Использование именованной функции
function compareColumns($a, $b) {
if ($a['column1'] == $b['column1']) {
return $a['column2'] - $b['column2'];
}
return $a['column1'] - $b['column1'];
}
usort($array, 'compareColumns');
Метод 3. Использование оператора космического корабля (<=>)
usort($array, function($a, $b) {
return [$a['column1'], $a['column2']] <=> [$b['column1'], $b['column2']];
});
В этих примерах $arrayпредставляет массив, который вы хотите отсортировать, 'column1'и 'column2'являются ключами столбцы, по которым вы хотите отсортировать. Настройте их в соответствии с фактическими именами столбцов.