ホームページ  >  記事  >  バックエンド開発  >  PHP 多次元配列ソートのターミネータ: ソート問題を完全に解決します

PHP 多次元配列ソートのターミネータ: ソート問題を完全に解決します

王林
王林オリジナル
2024-04-30 10:12:01502ブラウズ

PHP の多次元配列ソート用アーティファクト: multisort_recursive() 関数。任意のキーで再帰的にソートできます。構文は multisort_recursive(&$array, $sort_order1, ..., $sort_orderN, $options) です。並べ替えオプションには、昇順 (SORT_ASC)、降順 (SORT_DESC)、自然 (SORT_REGULAR)、数値 (SORT_NUMERIC)、および文字列 (SORT_STRING) が含まれます。

PHP 多次元配列ソートのターミネータ: ソート問題を完全に解決します

PHP 多次元配列ソートのターミネーター: ソート問題を完全に解決します

多次元配列を必要とする PHP 開発者向け配列のソート、ここに来てください たとえば、通常、array_multisort() が最初に思い浮かぶオプションです。しかし、この機能は複雑な多次元配列のソートには不十分であり、実際の開発のニーズを満たすことができません。今日は、より強力な代替手段である multisort_recursive() 関数を紹介します。

multisort_recursive() 関数

multisort_recursive() この関数は、多次元配列を再帰的に効率的に並べ替えることができます。配列内の要素を任意の数のソートキーでソートします。

構文は次のとおりです:

bool multisort_recursive(array &$array, string $sort_order1, ..., string $sort_orderN, int $options = SORT_REGULAR)

その中に:

  • $array: ソートされる多次元配列 (参照によって渡されます) )
  • $sort_order1, ..., $sort_orderN: 並べ替え条件を指定する文字列の配列。各文字列には次の並べ替えオプションのいずれかが含まれます:

    • SORT_ASC: 昇順
    • SORT_DESC: 降順
    • SORT_REGULAR: 自然ソート (順番に並べる)要素の値の)
    • SORT_NUMERIC: 数値で並べ替えます
    • SORT_STRING: 文字列値で並べ替えます
  • $options: オプションで、追加の並べ替えオプションを指定します。例:

    • SORT_LOCALE_STRING: ロケール依存の文字列で並べ替えます。

##実際的なケース

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

$array = [
    ['name' => 'John', 'age' => 30],
    ['name' => 'Jane', 'age' => 25],
    ['name' => 'Tom', 'age' => 28],
    ['name' => 'Mary', 'age' => 22],
];

配列を昇順に並べ替えたいと考えています。年齢順、名前順の昇順で並べ替えます。

multisort_recursive() 関数を使用すると、この目標を簡単に達成できます:

multisort_recursive($array, [SORT_ASC, SORT_ASC], [SORT_NUMERIC, SORT_STRING]);

ソート結果は次のとおりです:

$array = [
    ['name' => 'Mary', 'age' => 22],
    ['name' => 'Jane', 'age' => 25],
    ['name' => 'Tom', 'age' => 28],
    ['name' => 'John', 'age' => 30],
];

結論

#multisort_recursive()

この関数は、複雑な多次元配列の並べ替えタスクを簡単に処理できる強力なツールを PHP 開発者に提供します。 array_multisort() よりも柔軟で強力なため、並べ替えコードの記述が簡素化されます。

以上がPHP 多次元配列ソートのターミネータ: ソート問題を完全に解決しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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