ホームページ > バックエンド開発 > PHPチュートリアル > PHP配列を値でソートした後、キー名を保持するにはどうすればよいですか?

PHP配列を値でソートした後、キー名を保持するにはどうすればよいですか?

PHPz
リリース: 2024-05-02 16:09:02
オリジナル
643 人が閲覧しました

PHP でキー名を保持しながら配列を値で並べ替える方法は、usort() 関数を使用して配列を値で並べ替えることです。 usort() 関数には、要素値の差を返す比較関数として匿名関数が渡されます。 usort() は、キーを変更せずに、匿名関数に従って配列をソートします。

PHP 数组按值排序后如何保持键名?

#PHP で配列を値でソートし、キー名を保持するにはどうすればよいですか?

PHP では、asort() 関数を使用して配列を値で昇順に並べ替えたり、arsort() を使用して降順に並べ替えたりできます。関数。ただし、どちらの関数も配列内のキーを破棄します。

キー名を保持したまま配列を値で並べ替える場合は、usort() 関数を次のように使用できます。

$arr = array(
    'a' => 10,
    'b' => 5,
    'c' => 20
);

usort($arr, function($a, $b) {
    return $a - $b;
});

print_r($arr);
ログイン後にコピー

出力:

Array
(
    [b] => 5
    [a] => 10
    [c] => 20
)
ログイン後にコピー

上記のコード:

  • usort() は 2 つのパラメーターを受け入れます: ソートされる配列 $arr とソートに使用される要素値です。匿名関数を比較します。
  • 匿名関数は、2 つの要素 $a$b を受け取り、それらの差を返します。
  • usort() は、比較関数として無名関数を使用して、配列内の要素を並べ替えます。
  • 並べ替え後、配列内のキー名は変更されません。

実際的なケース

学生の成績を含む配列を考えてみましょう:

$students = array(
    'John' => 90,
    'Jane' => 85,
    'Peter' => 95
);
ログイン後にコピー

学生の名前を成績ごとに昇順に並べ替えたいとします。名前をキー名として保持したまま、次のコードを使用できます:

usort($students, function($a, $b) {
    return $a - $b;
});
ログイン後にコピー

出力:

Array
(
    [Jane] => 85
    [John] => 90
    [Peter] => 95
)
ログイン後にコピー

以上がPHP配列を値でソートした後、キー名を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート