能不能直接调用已有的函数不是很清楚
但觉得做这样的东西,需要自己先有dictionary,一张 “汉字”==〉“拼音”的对照表,
之后就因该比较好办了

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/2758/2758503.xml?temp=.9644434
    这个帖子的最后部分是一个得到汉字拼音的代码,得到汉字拼音,再拿到第一个就可以进行排序了,你觉得呢?
    或者你将数据存入数据库的时候就放一个拼音的标识吧,这样子会更快点,可以利用上面的代码得到汉字拼音的首韵母
      

  2.   

    to :keaizhong(可爱钟):
       你说的不错啊!我将数据望库里面插时,就应该得到第一个字的汉字拼音,把他插到对应的列中作为记号,方便查询时候直接查它就可以了
      

  3.   

    给你一个将汉字转化为拼音的函数,下面的事,你自己解决吧!
    <? 
    $d=array( 
     array("a",-20319), 
     array("ai",-20317), 
     array("an",-20304), 
     array("ang",-20295), 
     array("ao",-20292), 
     array("ba",-20283), 
     array("bai",-20265), 
     array("ban",-20257), 
     array("bang",-20242), 
     array("bao",-20230), 
     array("bei",-20051), 
     array("ben",-20036), 
     array("beng",-20032), 
     array("bi",-20026), 
     array("bian",-20002), 
     array("biao",-19990), 
     array("bie",-19986), 
     array("bin",-19982), 
     array("bing",-19976), 
     array("bo",-19805), 
     array("bu",-19784), 
     array("ca",-19775), 
     array("cai",-19774), 
     array("can",-19763), 
     array("cang",-19756), 
     array("cao",-19751), 
     array("ce",-19746), 
     array("ceng",-19741), 
     array("cha",-19739), 
     array("chai",-19728), 
     array("chan",-19725), 
     array("chang",-19715), 
     array("chao",-19540), 
     array("che",-19531), 
     array("chen",-19525), 
     array("cheng",-19515), 
     array("chi",-19500), 
     array("chong",-19484), 
     array("chou",-19479), 
     array("chu",-19467), 
     array("chuai",-19289), 
     array("chuan",-19288), 
     array("chuang",-19281), 
     array("chui",-19275), 
     array("chun",-19270), 
     array("chuo",-19263), 
     array("ci",-19261), 
     array("cong",-19249), 
     array("cou",-19243), 
     array("cu",-19242), 
     array("cuan",-19238), 
     array("cui",-19235), 
     array("cun",-19227), 
     array("cuo",-19224), 
     array("da",-19218), 
     array("dai",-19212), 
     array("dan",-19038), 
     array("dang",-19023), 
     array("dao",-19018), 
     array("de",-19006), 
     array("deng",-19003), 
     array("di",-18996), 
     array("dian",-18977), 
     array("diao",-18961), 
     array("die",-18952), 
     array("ding",-18783), 
     array("diu",-18774), 
     array("dong",-18773), 
     array("dou",-18763), 
     array("du",-18756), 
     array("duan",-18741), 
     array("dui",-18735), 
     array("dun",-18731), 
     array("duo",-18722), 
     array("e",-18710), 
     array("en",-18697), 
     array("er",-18696), 
     array("fa",-18526), 
     array("fan",-18518), 
     array("fang",-18501), 
     array("fei",-18490), 
     array("fen",-18478), 
     array("feng",-18463), 
     array("fo",-18448), 
     array("fou",-18447), 
     array("fu",-18446), 
     array("ga",-18239), 
     array("gai",-18237), 
     array("gan",-18231), 
     array("gang",-18220), 
     array("gao",-18211), 
     array("ge",-18201), 
     array("gei",-18184), 
     array("gen",-18183), 
     array("geng",-18181), 
     array("gong",-18012), 
     array("gou",-17997), 
     array("gu",-17988), 
     array("gua",-17970), 
     array("guai",-17964), 
     array("guan",-17961), 
     array("guang",-17950), 
     array("gui",-17947), 
     array("gun",-17931), 
     array("guo",-17928), 
     array("ha",-17922), 
     array("hai",-17759), 
     array("han",-17752), 
     array("hang",-17733), 
     array("hao",-17730), 
     array("he",-17721), 
     array("hei",-17703), 
     array("hen",-17701), 
     array("heng",-17697), 
     array("hong",-17692), 
     array("hou",-17683), 
     array("hu",-17676), 
     array("hua",-17496), 
     array("huai",-17487), 
     array("huan",-17482), 
     array("huang",-17468), 
     array("hui",-17454), 
     array("hun",-17433), 
     array("huo",-17427), 
     array("ji",-17417), 
     array("jia",-17202), 
     array("jian",-17185), 
     array("jiang",-16983), 
     array("jiao",-16970), 
     array("jie",-16942), 
     array("jin",-16915), 
     array("jing",-16733), 
     array("jiong",-16708), 
     array("jiu",-16706), 
     array("ju",-16689), 
     array("juan",-16664), 
     array("jue",-16657), 
     array("jun",-16647), 
     array("ka",-16474), 
     array("kai",-16470), 
     array("kan",-16465), 
     array("kang",-16459), 
     array("kao",-16452), 
     array("ke",-16448), 
     array("ken",-16433), 
     array("keng",-16429), 
     array("kong",-16427), 
     array("kou",-16423), 
     array("ku",-16419), 
     array("kua",-16412), 
     array("kuai",-16407), 
     array("kuan",-16403), 
     array("kuang",-16401), 
     array("kui",-16393), 
     array("kun",-16220), 
     array("kuo",-16216), 
     array("la",-16212), 
     array("lai",-16205), 
     array("lan",-16202), 
     array("lang",-16187), 
     array("lao",-16180), 
     array("le",-16171), 
     array("lei",-16169), 
     array("leng",-16158), 
     array("li",-16155), 
     array("lia",-15959), 
     array("lian",-15958), 
     array("liang",-15944), 
     array("liao",-15933), 
     array("lie",-15920), 
     array("lin",-15915), 
     array("ling",-15903), 
     array("liu",-15889), 
     array("long",-15878), 
     array("lou",-15707), 
     array("lu",-15701), 
     array("lv",-15681), 
     array("luan",-15667), 
     array("lue",-15661), 
     array("lun",-15659), 
     array("luo",-15652), 
     array("ma",-15640), 
     array("mai",-15631), 
     array("man",-15625), 
     array("mang",-15454), 
     array("mao",-15448), 
     array("me",-15436), 
     array("mei",-15435), 
     array("men",-15419), 
     array("meng",-15416), 
     array("mi",-15408), 
     array("mian",-15394), 
     array("miao",-15385), 
     array("mie",-15377), 
     array("min",-15375), 
     array("ming",-15369), 
     array("miu",-15363), 
     array("mo",-15362), 
     array("mou",-15183), 
     array("mu",-15180), 
     array("na",-15165), 
     array("nai",-15158), 
     array("nan",-15153), 
     array("nang",-15150), 
     array("nao",-15149), 
     array("ne",-15144), 
     array("nei",-15143), 
     array("nen",-15141), 
     array("neng",-15140), 
     array("ni",-15139), 
     array("nian",-15128), 
     array("niang",-15121), 
     array("niao",-15119), 
     array("nie",-15117), 
     array("nin",-15110), 
     array("ning",-15109), 
     array("niu",-14941), 
     array("nong",-14937), 
     array("nu",-14933), 
     array("nv",-14930), 
     array("nuan",-14929), 
     array("nue",-14928), 
     array("nuo",-14926), 
     array("o",-14922), 
     array("ou",-14921), 
     array("pa",-14914), 
     array("pai",-14908), 
     array("pan",-14902), 
      

  4.   

    接上文:
    array("pang",-14894), 
     array("pao",-14889), 
     array("pei",-14882), 
     array("pen",-14873), 
     array("peng",-14871), 
     array("pi",-14857), 
     array("pian",-14678), 
     array("piao",-14674), 
     array("pie",-14670), 
     array("pin",-14668), 
     array("ping",-14663), 
     array("po",-14654), 
     array("pu",-14645), 
     array("qi",-14630), 
     array("qia",-14594), 
     array("qian",-14429), 
     array("qiang",-14407), 
     array("qiao",-14399), 
     array("qie",-14384), 
     array("qin",-14379), 
     array("qing",-14368), 
     array("qiong",-14355), 
     array("qiu",-14353), 
     array("qu",-14345), 
     array("quan",-14170), 
     array("que",-14159), 
     array("qun",-14151), 
     array("ran",-14149), 
     array("rang",-14145), 
     array("rao",-14140), 
     array("re",-14137), 
     array("ren",-14135), 
     array("reng",-14125), 
     array("ri",-14123), 
     array("rong",-14122), 
     array("rou",-14112), 
     array("ru",-14109), 
     array("ruan",-14099), 
     array("rui",-14097), 
     array("run",-14094), 
     array("ruo",-14092), 
     array("sa",-14090), 
     array("sai",-14087), 
     array("san",-14083), 
     array("sang",-13917), 
     array("sao",-13914), 
     array("se",-13910), 
     array("sen",-13907), 
     array("seng",-13906), 
     array("sha",-13905), 
     array("shai",-13896), 
     array("shan",-13894), 
     array("shang",-13878), 
     array("shao",-13870), 
     array("she",-13859), 
     array("shen",-13847), 
     array("sheng",-13831), 
     array("shi",-13658), 
     array("shou",-13611), 
     array("shu",-13601), 
     array("shua",-13406), 
     array("shuai",-13404), 
     array("shuan",-13400), 
     array("shuang",-13398), 
     array("shui",-13395), 
     array("shun",-13391), 
     array("shuo",-13387), 
     array("si",-13383), 
     array("song",-13367), 
     array("sou",-13359), 
     array("su",-13356), 
     array("suan",-13343), 
     array("sui",-13340), 
     array("sun",-13329), 
     array("suo",-13326), 
     array("ta",-13318), 
     array("tai",-13147), 
     array("tan",-13138), 
     array("tang",-13120), 
     array("tao",-13107), 
     array("te",-13096), 
     array("teng",-13095), 
     array("ti",-13091), 
     array("tian",-13076), 
     array("tiao",-13068), 
     array("tie",-13063), 
     array("ting",-13060), 
     array("tong",-12888), 
     array("tou",-12875), 
     array("tu",-12871), 
     array("tuan",-12860), 
     array("tui",-12858), 
     array("tun",-12852), 
     array("tuo",-12849), 
     array("wa",-12838), 
     array("wai",-12831), 
     array("wan",-12829), 
     array("wang",-12812), 
     array("wei",-12802), 
     array("wen",-12607), 
     array("weng",-12597), 
     array("wo",-12594), 
     array("wu",-12585), 
     array("xi",-12556), 
     array("xia",-12359), 
     array("xian",-12346), 
     array("xiang",-12320), 
     array("xiao",-12300), 
     array("xie",-12120), 
     array("xin",-12099), 
     array("xing",-12089), 
     array("xiong",-12074), 
     array("xiu",-12067), 
     array("xu",-12058), 
     array("xuan",-12039), 
     array("xue",-11867), 
     array("xun",-11861), 
     array("ya",-11847), 
     array("yan",-11831), 
     array("yang",-11798), 
     array("yao",-11781), 
     array("ye",-11604), 
     array("yi",-11589), 
     array("yin",-11536), 
     array("ying",-11358), 
     array("yo",-11340), 
     array("yong",-11339), 
     array("you",-11324), 
     array("yu",-11303), 
     array("yuan",-11097), 
     array("yue",-11077), 
     array("yun",-11067), 
     array("za",-11055), 
     array("zai",-11052), 
     array("zan",-11045), 
     array("zang",-11041), 
     array("zao",-11038), 
     array("ze",-11024), 
     array("zei",-11020), 
     array("zen",-11019), 
     array("zeng",-11018), 
     array("zha",-11014), 
     array("zhai",-10838), 
     array("zhan",-10832), 
     array("zhang",-10815), 
     array("zhao",-10800), 
     array("zhe",-10790), 
     array("zhen",-10780), 
     array("zheng",-10764), 
     array("zhi",-10587), 
     array("zhong",-10544), 
     array("zhou",-10533), 
     array("zhu",-10519), 
     array("zhua",-10331), 
     array("zhuai",-10329), 
     array("zhuan",-10328), 
     array("zhuang",-10322), 
     array("zhui",-10315), 
     array("zhun",-10309), 
     array("zhuo",-10307), 
     array("zi",-10296), 
     array("zong",-10281), 
     array("zou",-10274), 
     array("zu",-10270), 
     array("zuan",-10262), 
     array("zui",-10260), 
     array("zun",-10256), 
     array("zuo",-10254) 
    ); function g($num){ 
     global $d; 
     if($num>0&&$num<160){ 
      return chr($num); 
     } 
     elseif($num<-20319||$num>-10247){ 
      return ""; 
     }else{ 
      for($i=count($d)-1;$i>=0;$i--){if($d[$i][1]<=$num)break;} 
      return $d[$i][0]; 
     } 
    } function c($str){ 
     $ret=""; 
     for($i=0;$i<strlen($str);$i++){ 
      $p=ord(substr($str,$i,1)); 
      if($p>160){ 
       $q=ord(substr($str,++$i,1)); 
       $p=$p*256+$q-65536; 
      } 
      $ret.=g($p); 
     } 
     return $ret; 
    } echo c($hz); 
    ?> 
    <form method=post> 
    请在此处输入中文:<input name=hz> 
    </form>
      

  5.   

    thunderx(平生一笑) 说的对,我已按他的代码测试了一下,真好用 
     
    http://em.yeahi.net/phptest/pingyin.php
      

  6.   

    1-可以修改数据库,填加个字段,如pinyin,并在录入数据的时候自动将文章的首字母写进字段中,以方便查询;
    2-也可以将数据读出来,后再根据查询的条件输出相关文章名,如;
     
    <?php
    require "pinyin.php"; #将上面程序保存为pinyin.php!
    $test=array();
    #-----------------------------
    #调用数据库获得文章名;如下
    #-----------------------------
    $test[0]="csdn";
    $test[1]="开发csdn";
    $test[2]="开发php";
    $test[3]="庆祝";
    $test[4]="祝庆";
    $test[5]="贺喜***";echo "<hr>";
    print_r($test);
    echo "<BR>";
    echo "<hr>"; if (isset($vchar)){
      for ($i=0;$i<count($test);$i++)
       { if ($vchar==substr(c($test[$i]),0,1))
          echo $test[$i]."<br>";
    }}
    ?>
      

  7.   

    忘了表单了:
    <form name="form1" method="post" action="">
      <input type="hidden" name="hiddenField">
      <input name="vchar" type="text" id="vchar">
      <input type="submit" name="Submit" value="Submit">
    </form>