PHP では、連想配列を値で並べ替える 2 つの方法が提供されています。 asort() 関数を使用します。元のキー名を保持しながら、値を小さい値から大きい値に並べ替えます。 usort() 関数とクロージャの使用: 元のキー名を保持しながら、カスタム比較関数によって値を並べ替えます。
asort()
関数の使用
PHP の asort()
関数連想配列は、元のキー名を保持したまま値で並べ替えることができます。連想配列を引数として受け取り、値を最小値から最大値の順に並べ替えます。
<?php $arr = [ "apple" => 5, "banana" => 3, "orange" => 2, "grape" => 4, ]; asort($arr); print_r($arr); ?>
出力:
Array ( [orange] => 2 [banana] => 3 [grape] => 4 [apple] => 5 )
ご覧のとおり、配列の値は小さいものから大きいものへと並べ替えられていますが、キー名は変更されていません。
usort()
関数とクロージャの使用
もう 1 つの方法は、usort()
関数とクロージャ Bag を使用することです。 usort()
配列内の要素を比較するために使用されるコールバック関数をパラメーターとして受け入れます。クロージャは、コールバックとして使用できる匿名関数です。
<?php $arr = [ "apple" => 5, "banana" => 3, "orange" => 2, "grape" => 4, ]; usort($arr, function ($a, $b) { return $a[1] - $b[1]; }); print_r($arr); ?>
出力:
Array ( [orange] => 2 [banana] => 3 [grape] => 4 [apple] => 5 )
この場合、クロージャは各要素の値 ($a[1]
と $b[1]#) を比較します。 ##)、どちらの値が大きいかに応じて、
-1、
0、または
1 を返します。
以上がPHP 元のキー名を保持したまま値で配列をソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。