« PHP:natsort()関数・natcasesort()関数 | メイン | PHP:compact()関数 »

2005年11月27日

PHP:array_multisort()関数

array_multisort()関数は、複数の配列を同時にソートします。

array_multisort($ARRAY1, [$how1, $option1,] $ARRAY2, [$how2, $option2,] $ARRAY3…);

■$ARRAY:ソート対象の配列

■$how:ソート方法(省略可能)
SORT_ASC:昇順ソート・デフォルト
SORT_DESC:降順ソート

■$option:ソート型(省略可能)
SORT_REGULAR:通常通りに比較する
SORT_NUMERIC:数値として比較する
SORT_STRING:文字列として比較する

array_multisort()関数の使い方

要素数が等しい複数の配列を用意して、array_multisort()関数で並び替え
    ↓
・1番目の配列がソートされ、2番目以降の配列も1番目の配列の並べ替え順に対応して並び替えられます。
・次に、1番目の配列で同値であった要素について、2番目以降の配列でソートします。
・3番目以降の配列でも同様の動作を繰り返します。

$ARRAY1 = array("PHP", "PHP", "perl", "FLASH", "SQL");
$ARRAY2 = array(50, 22, 26, 18, 24);
$res = array_multisort($ARRAY1, SORT_DESC, SORT_STRING, $ARRAY2, SORT_ASC, SORT_NUMERIC);
//$ARRAY1を文字列比較降順でソート($ARRAY2にもソート順を反映)
//した後、$ARRAY2を数値比較昇順でソートします。
//$resにはソートが成功した場合にはTRUE、
//失敗した場合にはFALSEが格納されます。

print_r($ARRAY1);

※上記の結果、「Array([0]=>perl [1]=>SQL [2]=>PHP [3]=>PHP [4]=>FLASH)」を出力します。

print_r($ARRAY2);

※上記の結果、「Array([0]=>26 [1]=>24 [2]=>22 [3]=>50 [4]=>18)」を出力します。

投稿者 wing : 2005年11月27日 21:58

コメント