Объясните пожалуйста как работает функция php usort()?
все просто: 1 двигает элемент вниз массива, -1 двигает элемент вверх массива, 0 оставляет на месте.Почему uasort отрабатывает не так как ожидается?
Что попадает в переменную $b функции cmp? В переменную $a функции cmp попадает массив $a?Функция cmp вызывается за время выполнения usort множество раз. А эти переменные содержат любые два элемента сортируемого массива. В вашем случае это 3 и 2, 3 и 5, 3 и 6, 3 и 1, 2 и 5 и т.д. (не обязательно в таком порядке).
Ответ на ваш вопрос легко узнать, используя инструменты отладки. Простейший var_dump() приоткроет завесу тайны - ideone.com/ubi7AqЯ не могу понять какая связь между тем, что функция cmp возвращает 0 или -1 или 1 и тем что массив сортируется по порядку значений?Исходя из вышесказанного, должно быть понятно что означает возвращаемое значение - больше один элемент массива, чем другой, меньше или они равны.