如何使用php计算数组中的印地语字符串以及字符串中的字母和元音数量
我有点像如何使用php计算数组中的印地语字符串以及字符串中的字母和元音数量,php,hindi,Php,Hindi,我有点像 $a = "आलोक" 我想在php中实现类似的功能 a[0] = आ a[1] = लो a[3] = क 我想数数,比如:- 我写了一个名字आलोक 我想要像字母=3和元音=2这样的输出 因为在आलोक 第一个字母आ, 第二个字母लो 第三个字母是क. 所以,字母=3 对于元音, 第一元音ा 和 第二元音ो 所以把元音放出来=2 名称可以是动态的,而不是静态的我正在查看您发布的另一个问题,建议在以下行中使用函数将字符串拆分为字符: function mbS
$a = "आलोक"
我想在php中实现类似的功能
a[0] = आ
a[1] = लो
a[3] = क
我想数数,比如:-
我写了一个名字आलोक
我想要像字母=3和元音=2这样的输出
因为在आलोक
第一个字母आ,
第二个字母लो
第三个字母是क.
所以,字母=3
对于元音,
第一元音ा 和
第二元音ो
所以把元音放出来=2
名称可以是动态的,而不是静态的我正在查看您发布的另一个问题,建议在以下行中使用函数将字符串拆分为字符:
function mbStringToArray ($string) {
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr($string,0,1,"UTF-8");
$string = mb_substr($string,1,$strlen,"UTF-8");
$strlen = mb_strlen($string);
}
return $array;
}
$a = "आलोक";
print_r(mbStringToArray($a));
如果运行此代码,它将为您提供以下输出:
Array
(
[0] => आ
[1] => ल
[2] => ो
[3] => क
)
我将在这个函数的基础上进行扩展,你可以很容易地得到元音和辅音的数量
谢天谢地,我在Devnagri脚本中所有字符的UTF-8编码中发现了这一点。另一个用于确认和排序此字符的十进制和八进制表示的简单工具是
从表中,I 0x093F并轻松地与ि.
现在,一旦你有了这个,只需要从十六进制代码中获取解码的unicode字符。您可以通过以下方式轻松实现:
echo json_decode('"\u093F"'); //Ouputs ि
我将这些步骤组合在一个名为countVowels的函数中:
所以在这种情况下,返回的辅音是2,元音也是2。那是因为我已经硬编码了आ 作为一个元音,因此它在countVowels函数中被考虑。看一看这张照片
您可以修改我在那里使用的数组,并根据您的要求处理这些差异。我希望这能让你从正确的方向开始。可能的重复不是重复,他们只是断线,而不是字母和元音的计数
function countVowels ($req){
//I have hard coded the hex values of some characters that are vowels in Hindi
//This does NOT include all the vowels
//You might want to add more as per your needs from the table that I have provided before
$hindi = array("\u0906","\u0908","\u093E","\u093F","\u0945","\u0946","\u0947","\u0948","\u0949","\u094A","\u094B","\u094C","\u094D");
$vowels= array();
$vowelcount = 0;
for($i = 0; $i<count($hindi); $i++){
//Push the decoded unicode character into the $vowels array
array_push($vowels,json_decode('"'.$hindi[$i].'"'));
}
for($j=0;$j<count($req);$j++){
if(in_array($req[$j], $vowels))
$vowelcount++;
}
return $vowelcount;
}
$a = "आलोक";
$arr = mbStringToArray($a)
$vows = countVowels($arr); //Number of vowels
$cons = count($arr) - $vows; //Number of consonants