2012-04-22 4 views
2

私はアルファベット順に名前の配列をソートしようとしています(この場合クロアチア語)。ローカリゼーションを考慮して配列をソートする方法は?

ĐaniDerrickより前に表示するにはどうすればよいですか?

$names = array(
    "Đani", "Bill", "Dennis", "George", "Derrick" 
); 

sort($names); 

print_r($names); 
+0

[UnicodeをサポートするPHPでのNatural sortingアルゴリズムの可能な複製?](http://stackoverflow.com/questions/832709/natural-sorting-algorithm-in-php-with-support-for-unicode) –

答えて

5

をあなたは、おそらくこのように、適切なロケールを設定する必要があります。

setlocale(LC_ALL, 'hr_HR'); 

そしてロケールを称えるためにソート言う:

sort($names,SORT_LOCALE_STRING); 
+0

Damnit、あなたは私とまったく同じ答えを投稿しましたが、クロアチアのロケールコードを見つけるのに少し時間がかかりました。 +1 –

0

あなたは、あなたがMySQLのテーブルにインポートすることができますし、データベース/テーブルの右の照合を設定して、ソートするORDER BY句を使用することができます。

RDMSを必要としない簡単なソリューションがあると確信しています。

は、同様にその質問に見てみましょう:Natural sorting algorithm in PHP with support for Unicode?

+0

これは私の最初のコールポートでしたが、私のホストはクロアチアの照合をサポートしていないmYSQL 5.1を実行しています。 SORT BYは事実上壊れています。私はこれが5.6で修正されたと信じています。 – thv20

関連する問題