php 配列のソートのサンプル
2011/05/17
ソートの基本は、数字・大文字・小文字・ひらがな・カタカナ。
数値と数字の混在は避ける。
値でソート(キーと値の相関関係を維持)
asort():昇順
- $ary = array("みかん", "500", "とまと", "めろん", "abc", "Abc", "bbc", "Bbc", "バナナ", "913");
- asort($ary);
- // asort($ary)の結果:昇順
- Array
- (
- [1] => 500
- [9] => 913
- [5] => Abc
- [7] => Bbc
- [4] => abc
- [6] => bbc
- [2] => とまと
- [0] => みかん
- [3] => めろん
- [8] => バナナ
- )
arsort():降順
- $ary = array("みかん", "500", "とまと", "めろん", "abc", "Abc", "bbc", "Bbc", "バナナ", "913");
- arsort($ary);
- // arsort($ary)の結果:降順
- Array
- (
- [8] => バナナ
- [3] => めろん
- [0] => みかん
- [2] => とまと
- [6] => bbc
- [4] => abc
- [7] => Bbc
- [5] => Abc
- [9] => 913
- [1] => 500
- )
natcasesort():大文字・小文字の区別なし:自然順
「自然順」って…要は「昇順」ってことだと思う。
- $ary = array("みかん", "500", "とまと", "めろん", "abc", "Abc", "bbc", "Bbc", "バナナ", "913");
- natcasesort($ary);
- // natcasesort($ary)の結果
- Array
- (
- [1] => 500
- [9] => 913
- [5] => Abc
- [4] => abc
- [7] => Bbc
- [6] => bbc
- [2] => とまと
- [0] => みかん
- [3] => めろん
- [8] => バナナ
- )
natsort():大文字・小文字の区別あり:自然順
「自然順」って…要は「昇順」ってことだと思う。
- $ary = array("みかん", "500", "とまと", "めろん", "abc", "Abc", "bbc", "Bbc", "バナナ", "913");
- natsort($ary);
- // natsort($ary)の結果
- Array
- (
- [1] => 500
- [9] => 913
- [5] => Abc
- [7] => Bbc
- [4] => abc
- [6] => bbc
- [2] => とまと
- [0] => みかん
- [3] => めろん
- [8] => バナナ
- )
値でソート(キーと値の相関関係をしない)
連想配列だったらキーは数値に置き換えられる
sort():数値添字配列:昇順
- $ary = array("みかん", "500", "とまと", "めろん", "abc", "Abc", "bbc", "Bbc", "バナナ", "913");
- sort($ary);
- // sort($ary)の結果:昇順
- Array
- (
- [0] => 500
- [1] => 913
- [2] => Abc
- [3] => Bbc
- [4] => abc
- [5] => bbc
- [6] => とまと
- [7] => みかん
- [8] => めろん
- [9] => バナナ
- )
sort():連想配列:昇順
- $ary = array("くだもの"=>"みかん", "やさい"=>"とまと", "おにく"=>"ひつじ");
- sort($ary);
- // sort($ary)の結果:昇順
- Array
- (
- [0] => とまと
- [1] => ひつじ
- [2] => みかん
- )
rsort():数値添字配列:降順
- $ary = array("みかん", "500", "とまと", "めろん", "abc", "Abc", "bbc", "Bbc", "バナナ", "913");
- rsort($ary);
- // rsort($ary)の結果:降順
- Array
- (
- [0] => バナナ
- [1] => めろん
- [2] => みかん
- [3] => とまと
- [4] => bbc
- [5] => abc
- [6] => Bbc
- [7] => Abc
- [8] => 913
- [9] => 500
- )
rsort():連想配列:降順
- $ary = array("くだもの"=>"みかん", "やさい"=>"とまと", "おにく"=>"ひつじ");
- rsort($ary);
- // rsort($ary)の結果:降順
- Array
- (
- [0] => みかん
- [1] => ひつじ
- [2] => とまと
- )
shuffle():数値添字配列:ランダム
- $ary = array("みかん", "500", "とまと", "めろん", "abc", "Abc", "bbc", "Bbc", "バナナ", "913");
- shuffle($ary);
- // shuffle($ary)の結果:ランダム
- Array
- (
- [0] => 500
- [1] => みかん
- [2] => Bbc
- [3] => めろん
- [4] => 913
- [5] => とまと
- [6] => bbc
- [7] => abc
- [8] => Abc
- [9] => バナナ
- )
shuffle():連想配列:ランダム
- $ary = array("くだもの"=>"みかん", "やさい"=>"とまと", "おにく"=>"ひつじ");
- shuffle($ary);
- // shuffle($ary)の結果:ランダム
- Array
- (
- [0] => とまと
- [1] => みかん
- [2] => ひつじ
- )
キーでソート(キーと値の相関関係を維持)
ksort():昇順
- $ary = array("くだもの"=>"みかん", "やさい"=>"とまと", "おにく"=>"ひつじ");
- ksort($ary);
- // ksort($ary)の結果:昇順
- Array
- (
- [おにく] => ひつじ
- [くだもの] => みかん
- [やさい] => とまと
- )
krsort():降順
- $ary = array("くだもの"=>"みかん", "やさい"=>"とまと", "おにく"=>"ひつじ");
- krsort($ary);
- // krsort($ary)の結果:降順
- Array
- (
- [やさい] => とまと
- [くだもの] => みかん
- [おにく] => ひつじ
- )
ユーザー定義とかよくわかんないヤツら
uasort()、uksort()、usort()、array_multisort()
「array_multisort()」は多重配列のソートで使える。