Как отсортировать массив по нескольким параметрам?

В PHP есть несколько способов отсортировать массив по нескольким параметрам.

1. Использование функции usort():

function customSort($a, $b) {
    if ($a['param1'] == $b['param1']) {
        return $a['param2'] - $b['param2'];
    }
    return $a['param1'] - $b['param1'];
}

usort($array, 'customSort');

В данном примере мы создаем функцию customSort(), которая сравнивает два элемента массива по их параметрам param1 и param2. Если значения param1 равны, мы сортируем элементы по param2. Функция usort() принимает в качестве аргументов массив $array и имя созданной функции сравнения.

2. Использование функции array_multisort():

$param1 = array_column($array, 'param1');
$param2 = array_column($array, 'param2');

array_multisort($param1, $param2, $array);

Здесь мы сначала используем функцию array_column() для получения значений параметров param1 и param2 и сохраняем их в отдельные массивы $param1 и $param2. Затем мы вызываем функцию array_multisort(), которая сортирует массивы $param1 и $param2 одновременно, а затем применяет ту же последовательность сортировки к массиву $array.

3. Использование функции array_uasort():

function customSort($a, $b) {
    if ($a['param1'] == $b['param1']) {
        return $a['param2'] - $b['param2'];
    }
    return $a['param1'] - $b['param1'];
}

array_uasort($array, 'customSort');

Этот способ похож на первый вариант, однако мы используем функцию array_uasort(), которая сортирует массив $array с использованием пользовательской функции сравнения customSort().

Все эти способы позволяют отсортировать массив по нескольким параметрам. Выбор конкретного метода зависит от сложности сортировки и требований к результатах.