数値とキーによる連想配列の並べ替え
文字列キーと数値を含む連想配列が与えられた場合、配列を次の基準で並べ替えるとします。数値の降順、タグ名のアルファベット順。たとえば、入力配列:
$arrTags = [ 'mango' => 2, 'orange' => 4, 'apple' => 2, 'banana' => 3 ];
は次のように出力される必要があります:
orange (4) banana (3) apple (2) mango (2)
解決策:
1 つの可能なアプローチは、次のように使用することです。 usort()。ただし、最初に数値で並べ替え、次にキーで並べ替えるカスタム比較関数が必要です。これは、2 つの手順で並べ替えることで実行できます。まず、数値の降順で並べ替え、次にキー値の昇順で並べ替えます。
コードを簡略化するために、array_values() 関数と array_keys() 関数を使用して、値とキーを別々の配列に抽出します。次に、array_multisort() を使用して、複数の配列に対して複数のソートを実行します。次のコードは、目的の出力を生成します:
array_multisort(array_values($arrTags), SORT_DESC, array_keys($arrTags), SORT_ASC, $arrTags);
以上が連想配列を数値とキーで降順に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。