LoginSignup
1
0

More than 3 years have passed since last update.

PHP sort 関数

Last updated at Posted at 2018-09-17

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" }

※連想配列で用いた例
テストの点数を悪い順に並べる事ってそうないと思いますけど:sweat:

$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" }

Quits.png

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
となる 。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0