こんにちは、てっちーです。
今回は、PHPで連想配列をソートする方法について紹介したいと思います。連想配列は幾つかの関数を使えばお手軽にソートできます。これらの関数を使えばキーと値のどちらを基準にしてもソート可能です。覚えておいて損はないので見てみてください。
連想配列をソートする方法
ソート関数
連想配列のソートはソート方法によって関数が異なります。つまり同じ関数のオプションを変えるのではなく、別々の関数に配列を渡すだけです。渡された配列はソートされ、上書きされます。もし上書きが困る場合は、ソートする前にコピーしてからソートしてください。
主な関数は次の通りです。どの関数もキーと値の位置関係は維持します。
| 関数名 | ソートの対象 | キーと値の位置関係 | ソート順 |
|---|---|---|---|
| asort(配列) | 値 | 維持 | 昇順 |
| arsort(配列) | 値 | 維持 | 降順 |
| krsort(配列) | キー | 維持 | 降順 |
| ksort(配列) | キー | 維持 | 昇順 |
最初の文字は、値の”a”またはキーの”k”で、降順にしたい場合は2つ名にreverseの”r”を入れてる。最後にsortをつける。若干、適当に説明したので嘘っぽいですが、覚えるのは簡単です。
ですが、こちらのPHPマニュアルを確認すると覚えなくても大丈夫です。
連想配列のソート使用例
ソート関数の使用例です。参考にしてみてください。
<? // ソートする配列 $list = array( 'tanaka'=> 320, 'sato'=> 132, 'ito'=> 256, 'suzuki'=> 226, ); asort($list); var_dump($list); // asortの結果を出力 arsort($list); var_dump($list); // arsortの結果を出力 ksort($list); var_dump($list); // ksortの結果を出力 krsort($list); var_dump($list); // krsortの結果を出力2
結果は次の通り
array(4) {
["sato"]=>
int(132)
["suzuki"]=>
int(226)
["ito"]=>
int(256)
["tanaka"]=>
int(320)
}
array(4) {
["tanaka"]=>
int(320)
["ito"]=>
int(256)
["suzuki"]=>
int(226)
["sato"]=>
int(132)
}
array(4) {
["ito"]=>
int(256)
["sato"]=>
int(132)
["suzuki"]=>
int(226)
["tanaka"]=>
int(320)
}
array(4) {
["tanaka"]=>
int(320)
["suzuki"]=>
int(226)
["sato"]=>
int(132)
["ito"]=>
int(256)
}
まとめ
今回は1次元の連想配列のソート方法について紹介しました。ソートは頻繁に使用するので必要な時に参考にしてください。2次元配列の連想配列のソート方法についても近いうちに紹介したいと思います。


コメント