2015年11月19日

PHP 配列のソート(並び替え)

«
»

Pocket

今回は「配列のデータのソート(並び替え)」について書きたいと思います。
まずはサンプルプログラムをみてみましょう。
 

<?php

$fruit = array("Orange","Apple","Strawberry","Blueberry"); 
print_r($fruit); //確認のため表示
echo "<br>";

sort($fruit); //配列の要素をアルファベット順に並び替える

print_r($fruit);

実行結果

PHP 配列 並び替え

解説

PHP 配列 ソート
 
配列の要素(データ)をアルファベット順や、数値の小さい順で並び替えたい場合は
sort(配列の変数) と記述することでソートすることができます。
 
サンプルプログラムでは英単語の文字列をのデータが配列に入っていたので
アルファベット順に並び替わりますが、数値データが入っていれば数値の小さい順(昇順)
に並び替わります。
 

日本語文字列のsort

では、アルファベットではなく、日本語の場合はどうでしょうか。
サンプルプログラムをみてみましょう。
 

<?php

$fruit = array("おれんじ","りんご","いちご","ぶるーべりー"); 
print_r($fruit); //確認のため表示
echo "<br>";

sort($fruit); //配列の要素を五十音順に並び替える

print_r($fruit);
echo "<br>";

$x = array("空","海","山","川"); //漢字もテスト
print_r($x); //確認のため表示
echo "<br>";

sort($x); //うみ、かわ、そら、やま になるかな?

print_r($x);

実行結果

PHP 配列 ソート ひらがな 漢字

解説

実行結果を見て頂ければ分かる通り、ひらがなは五十音順に並び替わります
 
一方、漢字はなんとなく読みがな順になるかな?と思いますが、
そうはならないようです。(音読みや、訓読み、複数の読み方があるからなー)
 
漢字のような複雑なソートはsortではできないようです。

まとめ

・sortは配列の要素をアルファベット順や数値の昇順、五十音順に並び替える
・漢字や、文字と数値が混じったようなデータの並び替えはできない

【関連する記事】