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

多次元 PHP 配列をサブ配列値でソートするにはどうすればよいですか?

DDD
リリース: 2024-12-06 00:54:10
オリジナル
237 人が閲覧しました

How to Sort a Multidimensional PHP Array by Sub-array Value?

PHP でのサブ配列値による多次元配列の並べ替え

PHP では、配列は多次元にすることができます。つまり、配列内に配列を含めることができます。 。一般的な使用例は、ネストされたサブ配列内の特定のキーに基づいてこのような配列を並べ替えることです。

文字列キーによる並べ替え

次の配列について考えてみましょう:

$array = [
    [
        'configuration_id' => 10,
        'id' => 1,
        'optionNumber' => '3',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ],
    [
        'configuration_id' => 9,
        'id' => 1,
        'optionNumber' => '2',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ],
    [
        'configuration_id' => 8,
        'id' => 1,
        'optionNumber' => '1',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ]
];
ログイン後にコピー

この配列を「optionNumber」キーに基づいて昇順に並べ替えるには、次のように使用できます。 usort と匿名関数:

usort($array, function ($a, $b) {
    return strcmp($a['optionNumber'], $b['optionNumber']);
});
ログイン後にコピー

この関数は、各部分配列の 'optionNumber' 値を比較し、最初の値が大きい場合は 1 を返し、最初の値が小さい場合は -1 を返し、最初の値が小さい場合は 0 を返します。平等です。この比較では大文字と小文字が区別されます。

整数キーによる並べ替え

'optionNumber' キーに整数が含まれている場合は、次の関数を使用できます:

usort($array, function ($a, $b) {
    return $a['optionNumber'] - $b['optionNumber'];
});
ログイン後にコピー

この比較により、配列が数値の昇順に並べ替えられます。

考慮事項

  • PHP バージョン 5.3 以降では、オーバーフロー/切り捨てを防ぐために、減算の代わりに宇宙船演算子 (<=>) を使用してください。
  • これらの解決策は、「optionNumber」キーがすべてのシステムに存在することを前提としていることに注意してください。サブ配列であり、予期されたタイプです。

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

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