将任何给定语言的字母表作为PHP或Yii中的数组返回

时间:2014-04-01 06:13:03

标签: php yii localization

是否可以在Yii(或甚至是php)中使用一种语言来获取该语言的所有字符?伪代码就像:

Yii::app()->language = 'en-US';
Yii::app()->returnAlphabetAsArray(); // returns ['A', 'B', 'C', 'D', ... 'Z']

Yii::app()->language = 'ru-RU';
Yii::app()->returnAlphabetAsArray(); // returns ['A', 'Б', 'В', 'Г' .... 'Я']

这需要适用于任何给定数量的语言,因此实际上为每种语言手动将它们输入数据库或数组并不可行。我之前对Yii的内容感到惊讶,所以希望它隐藏在某个地方。

1 个答案:

答案 0 :(得分:0)

在纯PHP中,在数组中获取英文字母相当容易。只需使用:

$alphabet = range('A', 'Z');

不幸的是,这不适用于其他语言,所以你可以使用这样的东西。

foreach(range(0x0391, 0x03A9) as $letter) {

    $alphabet[] = html_entity_decode("&#$letter;", ENT_COMPAT, "UTF-8");
}

此处0x0391是希腊字母Alpha(第一个字母)的十六进制,0x03A9是希腊字母Omega(最后一个字母)的十六进制。我知道它不是100%自动化的,但它可以节省一些击键,因为你只需要定义语言的第一个和最后一个字符,并使用一个返回整个字符集的函数。