配列をソート

PHPのシンタックス

  1. HOME
  2. 配列をソート

配列をソートする

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() 値でユーザー定義順にソートする 維持しない ユーザー定義