не означает "равный"

тоящее время я переношу проект с 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] =>
        )

)

Ответы на вопрос(2)

Ваш ответ на вопрос