PHPのarray_multisort()関数とは?構文・パラメータ・使い方を徹底解説
PHPのarray_multisort()関数は、複数の配列や多次元配列を一度にソートできる便利な関数です。この記事では、基本的な構文から各パラメータの意味、実際のコード例まで、初心者にもわかりやすく解説します。
基本構文
array_multisort(arr1, sort_order, sort_type, arr2, arr3, arr4...)
パラメータの詳細
arr1 − ソート対象となる最初の配列(必須)
sort_order − ソートの順序を指定します。指定可能な値は以下の通りです。
SORT_ASC − デフォルト値。昇順(A→Z、小さい順)でソートします。
SORT_DESC − 降順(Z→A、大きい順)でソートします。
sort_type − 要素の比較方法(ソートの挙動)を指定します。指定可能な値は以下の通りです。
SORT_REGULAR − デフォルト値。通常の方法(標準ASCII)で要素を比較します。
SORT_NUMERIC − 要素を数値として比較します。
SORT_STRING − 要素を文字列として比較します。
SORT_LOCALE_STRING − 現在のロケールに基づいて、要素を文字列として比較します(setlocale()で変更可能)。
SORT_NATURAL − natsort()のように「自然順序付け」で文字列として要素を比較します。
SORT_FLAG_CASE − SORT_STRINGまたはSORT_NATURALと組み合わせる(ビットOR)ことで、大文字小文字を区別せずにソートできます。
arr2 − 追加でソートする別の配列(省略可能)
arr3 − 追加でソートする別の配列(省略可能)
arr4 − 追加でソートする別の配列(省略可能)
戻り値
array_multisort()関数は、ソートされた配列を返します。なお、この関数は引数として渡された元の配列自体を直接ソートする点にも注意してください。
使用例1:複数の配列を同時にソート
まずは、2つの配列を同時にソートする基本的な例を見てみましょう。
<?php $a1 = array(12, 55, 3, 9, 99); $a2 = array(44, 67, 22, 78, 46); array_multisort($a1,$a2); print_r($a1); print_r($a2); ?>
出力結果
Array ( [0] => 3 [1] => 9 [2] => 12 [3] => 55 [4] => 99 ) Array ( [0] => 22 [1] => 78 [2] => 44 [3] => 67 [4] => 46 )
この例では、$a1が昇順にソートされ、それに連動して$a2も対応関係を保ったまま並べ替えられていることがわかります。
使用例2:2つの配列を結合して昇順にソート
次に、array_merge()で2つの配列を結合し、その結果を昇順かつ数値としてソートする例を紹介します。
<?php $a1 = array(12, 55, 3, 9, 99); $a2 = array(44, 67, 22, 78, 46); $num = array_merge($a1,$a2); array_multisort($num,SORT_ASC,SORT_NUMERIC); print_r($num); ?>
出力結果
Array ( [0] => 3 [1] => 9 [2] => 12 [3] => 22 [4] => 44 [5] => 46 [6] => 55 [7] => 67 [8] => 78 [9] => 99 )
結合された10個の要素が、SORT_ASC(昇順)とSORT_NUMERIC(数値比較)の指定により、正しく小さい順に並び替えられています。
まとめ
array_multisort()関数を使えば、複数の配列や多次元配列を柔軟にソートできます。sort_orderやsort_typeのオプションを組み合わせることで、数値・文字列・ロケール対応など、さまざまな要件に応じたソート処理が実現可能です。データベースの検索結果を整形したい場合などにも活用できるので、ぜひ覚えておきましょう。
-
PHPのarray_multisort()関数とは?構文・パラメータ・使い方を徹底解説
PHPのarray_multisort()関数は、複数の配列や多次元配列を一度にソートできる便利な関数です。この記事では、基本的な構文から各パラメータの意味、実際のコード例まで、初心者にもわかりやすく解説します。基本構文array_multisort(arr1, sort_order, sort_type, arr2, arr3, arr4...)パラメータの詳細arr1 − ソート対象となる最初の配列(必須)sort_order − ソートの順序を指定します。指定可能な値は以下の通りです。SORT_ASC − デフォルト値。昇順(A→Z、小さい順)でソートします。SORT_DESC − 降順
-
PHPのarray()関数とは?配列の作成方法をわかりやすく解説
PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に