PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

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のオプションを組み合わせることで、数値・文字列・ロケール対応など、さまざまな要件に応じたソート処理が実現可能です。データベースの検索結果を整形したい場合などにも活用できるので、ぜひ覚えておきましょう。

  1. 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 − 降順

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に