ホームページ >バックエンド開発 >PHPチュートリアル >PHP で多次元連想配列を特定のキーでソートするにはどうすればよいですか?

PHP で多次元連想配列を特定のキーでソートするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-04 18:30:12978ブラウズ

How to Sort a Multidimensional Associative Array in PHP by a Specific Key?

PHP で連想配列をキーで並べ替える方法 [重複]

配列の並べ替えは、特に次の場合にプログラミングで一般的なタスクになることがあります。 PHP の連想配列のようなデータ構造を扱います。これらの配列は通常の配列に似ていますが、数値インデックスの代わりにキーによって要素にアクセスできます。

問題:

のような要素を含む連想配列があります。以下に示すもの:

Array
(
    [0] => Array
        (
            [text] => tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 7480000
            [lastMonthSearchVolume] => 9140000
        )

    [1] => Array
        (
            [text] => personality tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 165000
            [lastMonthSearchVolume] => 201000
        )

    [2] => Array
        (
            [text] => online tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 246000
            [lastMonthSearchVolume] => 301000
        )

)

この配列を「avgSearchVolume」に基づいて降順に並べ替えたいとします。 field.

解決策:

PHP には、この目的に使用できる usort という組み込み関数が用意されています。 usort は、ソートする配列と比較関数の 2 つの引数を取ります。比較関数は 2 つの配列要素を引数として受け取り、負の整数、ゼロ、または正の整数を返します。

  • 最初の要素が 2 番目の要素の前に来る必要がある場合は、負の整数。
  • 2 つの要素が等しい場合はゼロ。
  • 2 番目の要素が最初の要素の前に来る必要がある場合は正の整数

配列を並べ替えるには、次のような比較関数を定義できます。

function cmp($a, $b)
{
    return $b['avgSearchVolume'] - $a['avgSearchVolume'];
}

この関数は、最初の要素の "avgSearchVolume" フィールドを "avgSearchVolume" から減算します。 2 番目の要素の " フィールド。結果が負の場合は、2 番目の要素が最初の要素の前に来る必要があることを意味します。ゼロの場合、要素は等しいとみなされます。正の場合、最初の要素が 2 番目の要素より前に来る必要があります。

最後に、usort を呼び出して、比較関数を 2 番目の引数として渡すことができます。

usort($array, "cmp");

usort を呼び出した後、配列「avgSearchVolume」フィールドによって降順に並べ替えられます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。