sort()
要素の値でソートを行う。
配列に元々あったキーは初期化されるためキーが元々から数値の配列に使うのがベスト。連想配列には向かないかと。
$array = ['apple', 'cherry', 'peach', 'banana'];
sort($array);
var_dump($array);
//array(4) { [0]=> string(5) "apple" [1]=> string(6) "banana" [2]=> string(6) "cherry" [3]=> string(5) "peach" }
※連想配列で用いた例
テストの点数を悪い順に並べる事ってそうないと思いますけど
$array = ['math' => '70', 'science' => '90', 'history' => '10'];
sort($array);
var_dump($array);
//array(3) { [0]=> string(2) "10" [1]=> string(2) "70" [2]=> string(2) "90" }
asort()
sort関数ではソート時にキーが初期化されたが、asort関数は
ソートしてもキーと値の関係を保つことができる。
$array = ['math' => '70', 'science' => '90', 'history' => '10'];
asort($array)
var_dump($array);
//array(3) { ["history"]=> string(2) "10" ["math"]=> string(2) "70" ["science"]=> string(2) "90" }
ksort()
ksort関数はキーを基準に配列をソートする。
またキーと値の関係を保つことができる。
$array = ['lisa' => '420', 'clark' => '350', 'alex' => '480'];
ksort($array);
var_dump($array);
//array(3) { ["alex"]=> string(3) "480" ["clark"]=> string(3) "350" ["lisa"]=> string(3) "420" }
キーを基準とするため、連想配列の場合役に立つが通常の配列の場合、キーは元々0、1、2..と割り振られているため活用できる瞬間があまりないように思う。
$array = ['a', 'b', 'c'];
var_dump($array);
//array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }
//ksort関数を使ったあともう一度var_dumpしてみる。
ksort($array);
var_dump($array);
//array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }
//もとから0スタートの昇順キーが振られるため活用できていない。
降順
降順の場合sort関数系の's'の前に'r'をつけてあげる
つまり
sortの降順 = rsort
asortの降順 = arsort
ksortの降順 = krsort
となる 。