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

PHP で多次元配列を 1 つ以上のキーでソートするにはどうすればよいですか?

DDD
リリース: 2025-01-05 12:34:43
オリジナル
881 人が閲覧しました

How can I sort multi-dimensional arrays in PHP by one or more keys?

値による多次元配列の並べ替え

多次元配列を操作する場合、特定のキーの値に基づいて配列を並べ替える必要がある場合があります。たとえば、画像のリストを含む配列がある場合、それらを日付またはサイズで並べ替えることができます。

単一のキーによる並べ替え

単一のキーで配列を並べ替えるにはキーを使用すると、usort() 関数を使用できます。この関数は、並べ替える配列と並べ替え関数の 2 つのパラメーターを取ります。並べ替え関数は、比較する 2 つの要素を表す 2 つのパラメーターを受け取る必要があります。

たとえば、次の配列があり、それを「order」キーの値で並べ替えたいとします。

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )
)
ログイン後にコピー

この配列を並べ替えるには、次の並べ替え関数を使用できます。

function sortByOrder($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
}
ログイン後にコピー

次に、この関数をusort() 関数:

usort($myArray, 'sortByOrder');
ログイン後にコピー

並べ替え後、配列は「order」キーの値によって並べられます:

Array
(
    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )
)
ログイン後にコピー

複数のキーによる並べ替え

複数のキーで配列を並べ替えるには、次の方法を使用できます:

  1. 並べ替えを作成する最初のキーの値を比較する関数。
  2. 最初のキーの値が等しい場合は、2 番目のキーの値を比較します。
  3. 相違が生じるまで後続のキーの値の比較を続けます。

たとえば、次の配列があり、それを「order」キーの値で並べ替え、次に値で並べ替えたいとします。 "title" キーの:

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 1
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Free
            [order] => 2
        )

    [3] => Array
        (
            [hashtag] => c1ede105cf8a54bbfb9f06542a9971bb
            [title] => Ready
            [order] => 3
        )
)
ログイン後にコピー

この配列を並べ替えるには、次の並べ替え関数を使用できます:

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

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