Это два элемента из массива, которые сравниваются друг с другом.Функция сравнения должна возвращать 0, если два элемента равны, меньше 0, если $ a <$ b, или больше 0, если $ a> $ b
Второй пример на php.net Example #2 Пример использования usort () с использованием многомерного массива иллюстрирует это немного подробнее.
Поскольку каждый индекс массива представляет собой сам массив с возможно многочисленными элементами, он позволяет вам сортировать массив на основе индекса, который выwant.
В этих случаях вам просто нужно знать, что обратные вызовы ожидают получения 2 значений для сравнения, поскольку для сортировки массива вы сравниваете 2 элемента за раз, пока список не будет отсортирован.См. Быстрая сортировка или Пузырьковая сортировка для получения дополнительной информации об алгоритмах сортировки.
<?php
function cmp($a, $b)
{
// usort gives 2 values from the array to compare, $a and $b
// we compare the "fruit" index from each item so the array is
// ultimately sorted by fruit
return strcmp($a["fruit"], $b["fruit"]);
}
$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";
usort($fruits, "cmp");
while (list($key, $value) = each($fruits)) {
echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}