Сортировка массива своей функцией PDF Печать E-mail

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

Автор: Беляев Александр

По материалам сайта: http://wm-help.net/