PHP. Сортировка массива своей функцией в php

Автор: Беляев Александр
Сайт Автора: wm-help.net
E-mail Автора: [email protected]
Дата написания: 18.11.2006

    Существует множество различных случаев, когда необходимо произвести сортировку массива, используя свою функцию для сортировки. Благо об этом позаботились создатели 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");


    Пример сортировки массива строковых значений, используя usort:

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");
Источник: https://wm-help.net/my-articles/article/sort-array-on-php-use-my-function.htmPage copy protected against web site content infringement by Copyscape
Перепечатка данной статьи разрешается только при письменном(e-mail) разрешении автора (Беляева Александра Дмитриевича) и при полном сохранении исходного вида статьи (ссылки, авторские реферальные ссылки, e-mail'ы, форматирование текста, ...), а так же указания точных данных об авторстве (данные автора + прямая [без редиректа и не закрытая от индексации] ссылка на статью).
В случае не выполнения данных правил, возможно применение «особых» мер, к нарушителям.