ホームページ > バックエンド開発 > PHPチュートリアル > PHP で多次元配列を値で並べ替えるにはどうすればよいですか?

PHP で多次元配列を値で並べ替えるにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-23 12:21:11
オリジナル
924 人が閲覧しました

How to Sort a Multi-dimensional Array by Value in PHP?

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

多次元配列では、要素に基づいて要素を並べ替える必要が生じる場合があります。特定のキーの値。たとえば、次の配列について考えてみましょう。

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
        )
)
ログイン後にコピー

「order」キーによる並べ替え

「order」キーによって配列を並べ替えるには、以下を使用できます。 usort() 関数。その使用法の包括的な内訳は次のとおりです:

PHP 5.2 以前:

最初に並べ替え関数を定義します:

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

PHP 5.3 以降:

匿名を使用する関数:

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

PHP 7:

宇宙船オペレーターの利用:

usort($myArray, function($a, $b) {
    return $a['order'] <=> $b['order'];
});
ログイン後にコピー

PHP 7.4:

矢を使うfunction:

usort($myArray, fn($a, $b) => $a['order'] <=> $b['order']);
ログイン後にコピー

多次元ソート:

多次元ソートの場合、最初の要素がゼロの場合に後続のソート要素を参照するようにソート関数を変更します。例:

usort($myArray, function($a, $b) {
    $retval = $a['order'] <=> $b['order'];
    if ($retval == 0) {
        $retval = $a['suborder'] <=> $b['suborder'];
        if ($retval == 0) {
            $retval = $a['details']['subsuborder'] <=> $b['details']['subsuborder'];
        }
    }
    return $retval;
});
ログイン後にコピー

キーの関連付け

キーの関連付けを維持する必要がある場合は、usort() の代わりに uasort() を使用します。

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

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