2017-04-04 80 views
2

是否可以使用區域設置對PHP數組進行排序?使用語言環境設置排序PHP數組?

這是設置:

我在PHP做一個互動的排序列表。通過用戶輸入,可以製作多個類別(列)中的一個來指導分類(姓名,住所等)。這個我通過使用array_multisort()函數來制定。

下一個障礙。該列表爲瑞典語,用戶將會看到瑞典語字母順序:abcdefghijklmnopqrstuvxyz å ä ö。現在解釋器將å ä ö排序爲非字母並將它們放在「a」之前。如何補救?

我在setlocale(LC_COLLATE, "sv_SV")函數上發現了一些零散的信息,但是評論並不好,我也沒有設法理解它如何與array_multisort()一起使用。它可以?如果是這樣,怎麼樣?有沒有另一種方式內的PHP?

事情是,必須有某種方式 - 瑞典網站比比皆是,應用瑞典排序順序。它可以用PHP來完成嗎?

回答

1

使用SORT_LOCALE_STRING作爲array_multisort()函數的第三個參數。 PHP ducuments說:

SORT_LOCALE_STRING - 比較項目作爲字符串,根據當前的區域設置。它使用的語言環境,這可以使用的setlocale()來改變

例如:

$result=array_multisort($input_array, SORT_ASC, SORT_LOCALE_STRING); 
0

對不起。這不是我認爲的問題。用我的代碼寫的文本得到正確的排序(只有ä得到錯誤排序之前å,但似乎在規格(?)的錯誤)。

無論如何,問題顯然是與字符編碼。這是從聯繫表格7數據庫(Wordpress插件)中提取文本時出現的問題。據推測它有另一種編碼和需要轉換。

無論如何。

相關問題