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 サイトの他の関連記事を参照してください。