Чтобы отсортировать массив по двум столбцам в 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'
являются ключами столбцы, по которым вы хотите отсортировать. Настройте их в соответствии с фактическими именами столбцов.