Простая часть кода, написанная мною:
<?php function testing($a,$b){ if ($a < $b ){ return -1; } elseif ($a > $b){ return 1; } //else { //return 0; //} } $array = array(1,3,2,4,5); usort($array, "testing"); var_dump($array); ?>
Это из верхнего комментария (наивысший рейтинг и 5 лет назад) на странице usort руководства php.net:
«Если вы возвращаете -1, который перемещает переменную $ b вниз по массиву, возвращает 1, перемещает $ b вверх по массиву, а return 0 сохраняет $ b в том же месте».
Поскольку я смотрел на фрагмент кода, который я написал, возвращая «-1», он не перемещает $ b, он остается в том же месте. Это только «возврат 1»; который перемещает $ b (по сравнению с парой $ a, current $ a- $ b).
Допустим, у нас есть что-то вроде этого: [1,3], 2,4,5 – Return -1
Квадратные скобки указывают текущую пару $ a- $ b. Получили ли мы что-то вроде этого: 1,2,3,4,5, что означает, что $ b будет переключаться со следующим элементом, который выходит за пределы текущей пары $ a- $ b? Дело в том, что я думаю, что только текущие элементы $ a- $ b могут переключаться. И с этим "return -1;" заявление не делает никакого перемещения, что не так, как я думал, что это работает.