Простой кусок кода, написанный мной:
<?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 вверх по массиву, а возврат 0 сохраняет $ b в том же месте».
Насколько я смотрел, фрагмент кода, который я написал, возвращая «-1», не перемещает $ b, он остается на том же месте. Это только «возврат 1;» оператор, который перемещает $ b (по сравнению с $ a, текущим $ a- $ b) парой.
Допустим, у нас есть что-то вроде этого:
[1,3], 2,4,5 — возврат -1
Квадратные скобки указывают текущую пару $ a- $ b. Будем ли мы получить что-то вроде этого:
1,2,3,4,5
означает, что $ b будет переключен со следующим элементом, который находится вне текущей пары $ a- $ b?
Дело в том, что я думаю, что переключаться могут только текущие элементы $ a- $ b. И с этим «возврат -1;» Заявление не делает никаких движений, что не так, как я думал, это работает.
Задача ещё не решена.
Других решений пока нет …