如何用php打破数组中的印地文字符串,并计算字符串中有多少个字母和元音 [英] how to break hindi string in array with php and count how many letter and vowel in string

查看:95
本文介绍了如何用php打破数组中的印地文字符串,并计算字符串中有多少个字母和元音的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有类似的东西

$a = "बिक्रम"

我想在php中实现类似的目的

I want to achieve something like in php

a[0] = बि 
a[1] = क्र 
a[3] = म

现在,我想计算一个印数形式的印地文名称字母,以及印地文名称(字符串)中有多少个元音. 如何用php打破数组中的印地文字符串,并计算字符串中有多少个字母和元音 索引页

now i want to count the letter of hindi name in a varial and how many vowel in hindi name(string). how to break hindi string in array with php and count how many letter and vowel in string Index page

<html>

<head>
  <script src="http://www.hinkhoj.com/common/js/keyboard.js"></script>
  <link rel="stylesheet" type="text/css" href="http://www.hinkhoj.com/common/css/keyboard.css" />
</head>

<body align="center" style="margin-top:15%">
  Name :&nbsp;&nbsp;&nbsp;&nbsp;
  <script language="javascript">
    CreateCustomHindiTextBox("nameid", "", 40, true);

    function ff() {
      var a = document.getElementById("nameid").value;
      var xmlhttp;
      if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
      } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
        }
      }

      xmlhttp.open("GET", "demo_get.php?val=" + a, true);
      xmlhttp.send();

    }
  </script>

  <input type="submit" name="submit" onClick="ff()">

  <div id="myDiv"></div>
</body>

</html>

ajax页面

<?php

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;
} 
echo $name = $_GET['val'];

print_r(mbStringToArray($name));


?>

推荐答案

一种方法,但不能如前所述精确打印输出

An Approach But Cant Print Exact output as mentioned

<?php
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] =>्[4] =>र[5] =>म)

Array ( [0] => ब [1] => ि [2] => क [3] => ् [4] => र [5] => म )

您可以做的是创建一个函数,该函数在mbStringToArray()返回的数组上进行迭代,如果下一个元素等于ि, ्等Varnamala(वर्णमाला)等,则将其与前一个元素连接在一起.

What You Can do is create function which iterates on an array returned by mbStringToArray() and if next element is equal to an Varnamala(वर्णमाला) like ि, ् etc join it together with the previous.

这是一种方法.

function joinVarnamala($array){
    $singsArray=array("ि","्");
    $out=array($array[0]);

    for ($i=1; $i <count($array) ; $i++) { 
        if (in_array($array[$i], $singsArray)) {
            $out[count($out)-1].=$array[$i];
        }else{
            $out[]=$array[$i];
        }
    }
    return $out;
}
print_r(joinVarnamala($ar));

输出:

数组([0] =>बि[1] =>정्[2] =>र[3] =>म)

Array ( [0] => बि [1] => क् [2] => र [3] => म )

这篇关于如何用php打破数组中的印地文字符串,并计算字符串中有多少个字母和元音的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆