配列をソートする
sort()はインデックス配列の値を昇順に並び替える関数です。インデックス番号もリセットされ、引数で渡した配列の値が並び替わります。
配列の値を昇順と降順にソートする
Array ( [0] => 3 [1] => 10 [2] => 21 [3] => 36 [4] => 55 [5] => 66 [6] => 89 [7] => 100 )Array ( [0] => 100 [1] => 89 [2] => 66 [3] => 55 [4] => 36 [5] => 21 [6] => 10 [7] => 3 )
<?php
$data = [55,3,89,21,36,10,100,66];
sort($data); //昇順
print_r($data);
echo "\n <br><br>";
rsort($data); //降順
print_r($data);
?>
複製した配列をソート
元になっている配列を直接ソートせずに、配列を複製してソートしたい場合に使用する。
複製してソート
Array ( [0] => 3 [1] => 10 [2] => 21 [3] => 36 [4] => 55 [5] => 66 [6] => 89 [7] => 100 )<?php
$data = [55,3,89,21,36,10,100,66];
$clone = $data;
sort($clone);
print_r($clone);
?>
ソートの型のフラグ
値を数値としてソートするか文字列としてソートするかといったオプションを第2引数で指定できます。
ソート型のフラグ | 動作 |
---|---|
SORT_REGULAR | 型変更をしない(初期値) |
SORT_NUMERIC | 数値として比較 |
SORT_STRING | 文字列として比較 |
SORT_LOCALE_STRING | 現在のロケールに基づく |
SORT_NATURAL | 文字列として自然順で比較 |
SORT_FLAG_CASE | 大文字小文字を比較しない |
配列をソートする関数
配列をソートする関数には値とキーどちらでソートするか、キーと値の関係性が維持されるか、昇順か降順かといった違いがあります。
関数名 | 概要 | ソート | キーと値の関係 | ソート順 |
---|---|---|---|---|
asort() | 連想配列を値で昇順にソートする | 値 | 維持する | 昇順 |
arsort() | 連想配列を値で降順にソートする | 値 | 維持する | 降順 |
ksort() | 連想配列をキーで昇順にソートする | キー | 維持する | 昇順 |
krsort | 連想配列をキーで降順にソートする | キー | 維持する | 降順 |
natcasesort() | 大文字小文字を区別せず自然順でソートする | 値 | 維持する | 自然順 |
natsort() | 自然順でソートする | 値 | 維持する | 自然順 |
sort() | 値で昇順にソートする | 値 | 維持しない | 昇順 |
rsort() | 値で降順にソートする | 値 | 維持しない | 降順 |
shuffle() | ランダムに並べる | 値 | 維持しない | ランダム |
uasort() | 値でユーザー定義順にソートする | 値 | 維持する | ユーザー定義 |
uksort() | キーでユーザー定義順にソートする | キー | 維持する | ユーザー定義 |
usort() | 値でユーザー定義順にソートする | 値 | 維持しない | ユーザー定義 |