ホームページ >バックエンド開発 >PHPの問題 >PHP で array_multisort 関数を使用して、指定されたフィールドで配列を並べ替える方法

PHP で array_multisort 関数を使用して、指定されたフィールドで配列を並べ替える方法

醉折花枝作酒筹
醉折花枝作酒筹転載
2021-06-25 16:09:033098ブラウズ

PHP には、配列の並べ替えに使用できる関数がいくつかあります。しかし、複数のフィールドを持つ配列の場合、指定したフィールドで並べ替えるにはどうすればよいでしょうか? array_multisort 関数を使用して、指定したフィールドで並べ替えることができます。

PHP で array_multisort 関数を使用して、指定されたフィールドで配列を並べ替える方法

PHP には、配列の並べ替えに使用できる関数がいくつかあります。

  • sort() - 配列を昇順に並べ替えます

  • rsort() - 配列を降順に並べ替えます

  • asort() - 連想配列の値に基づいて配列を昇順に並べ替えます

  • ksort() - に基づいて配列を昇順に並べ替えます連想配列のキー

  • arsort() - 連想配列の値に基づいて配列を降順に並べ替えます

  • krsort() - 連想配列のキーに基づいて配列を降順に並べ替えます

例:

        $arr=['green','car','apple','book'];
        sort($arr);
        var_dump($arr);

並べ替え結果を取得できます:

array (size=4)
  0 => string 'apple' (length=5)
  1 => string 'book' (length=4)
  2 => string 'car' (length=3)
  3 => string 'green' (length=5)

しかし、複数のフィールドを持つ配列の場合、指定されたフィールドに従って並べ替える方法は何ですか? たとえば、次の配列です:

        $arr=[
            [
                'age'=>50,
                'name'=>'张三'
            ],
            [
                'age'=>18,
                'name'=>'李四'
            ],
            [
                'age'=>27,
                'name'=>'王五'
            ]
        ];

年齢や名前で並べ替えるにはどうすればよいですか? array_multisort を使用できます。指定したフィールドで並べ替える関数。

 array_multisort(array_column($arr,'age'),SORT_ASC,$arr);
var_dump($arr);

印刷結果

array (size=3)
  0 => 
    array (size=2)
      'age' => int 18
      'name' => string '李四' (length=6)
  1 => 
    array (size=2)
      'age' => int 27
      'name' => string '王五' (length=6)
  2 => 
    array (size=2)
      'age' => int 50
      'name' => string '张三' (length=6)

このようにソートされます。つまり、array_multisort関数を使用してソートする場合、array_columnを使用して配列で指定された列をソートし、最初のパラメータを抽出します。第二引数と第三引数に配列を入れると、指定したフィールドでソートすることができます。 SORT_ASC は昇順、SORT_DESC は降順です。

推奨学習: php ビデオ チュートリアル

以上がPHP で array_multisort 関数を使用して、指定されたフィールドで配列を並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。