3
PHP 7がどのようにusort関数で同等の結果を処理するかについては、文書化されていない変更があるようです。PHP 7 usortは配列の最後に同じ項目を追加します。PHP 5では最初に追加されます
$myArray = array(1, 2, 3);
usort($myArray, function($a, $b) { return 0; });
print_r($myArray);
// PHP 5:
Array
(
[0] => 3
[1] => 2
[2] => 1
)
// PHP 7
Array
(
[0] => 1
[1] => 2
[2] => 3
)
つまり、usortは配列の最後に等しい値を追加しますが、PHP 5では最初に追加します。私はこの行動の言及を見つけることができません。
PHP 5の動作を強制する方法はありますか? PHP docsから
私は、 'usort'は安定しているとは保証されておらず、同等の要素のソート順もこれまでに定義されていたとは思いません。 *定義されていない振る舞いに依存している場合は、あなたのアプローチを変更する必要があります。 – deceze
PHP 5では文書化されていない動作でしたが、PHP 7にはまだありますか? –
@Blowski:明示的に定義されていません。 – BoltClock