|
|
Существует множество различных случаев, когда необходимо произвести сортировку массива, используя свою функцию для сортировки. Благо об этом позаботились создатели PHP и дали возможность простой сортировки с помощью функции usort. usort – используется, когда необходимо отсортировать массив, используя свою функцию. В качестве параметров функции usort первым параметром – передается массив, вторым – имя функции, которую вы собираетесь использовать для сортировки.
Ваша функция сортировки массива должна принимать два параметра – значения двух элементов массива, идущих в исходном массиве друг за другом. И на основании сравнений значений этих элементов массива, ваша функция должна возвращать -1, 0 или 1. Т.е. если возвращенное значение равно 1 – элемент массива опускается ниже, 0 – положение не определено (остается там же, где был до этого), 1 – поднимается вверх.
Пример сортировки с использованием usort для сортировки числовых элементов массива:
function cmp ($a, $b)
{
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
$a = array (3, 2, 5,
6, 1);
usort ($a, "cmp");
function cmp ($a, $b)
{
return strcmp($a["q"], $b["q"]);
}
$fruits[0]["q"] = "cead";
$fruits[1]["q"] = "bcea";
$fruits[2]["q"] = "abcd";
usort($fruits, "cmp");