如何使用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