не означает "равный"
тоящее время я переношу проект с php5.6 на php7.1. У большинства все идет хорошо, но я только что пробил стену один тест.
Функция usort не имеет одинакового поведения в обеих версиях, и, похоже, она не документирована (это не значит, что два значения равны, а порядок не определен). В моем тестовом случае порядок возвращаемых массивов меняется на противоположный.
Вот воспроизведение проблемы. Обратите внимание, что я все время возвращаю -1 для упрощения (здесь я фокусируюсь на разнице между PHP5.6 и 7)
Код запускается на обеих версиях:
$a = [['value' => 1, 'toto' => 'toto'], ['value' => 1, 'toto' => null]];
usort($a, function ($a, $b) { return -1;});
print_r($a);
Результаты в PHP 5.6:
Array
(
[0] => Array
(
[value] => 1
[toto] =>
)
[1] => Array
(
[value] => 1
[toto] => toto
)
)
PHP 7.1
Array
(
[0] => Array
(
[value] => 1
[toto] => toto
)
[1] => Array
(
[value] => 1
[toto] =>
)
)