如果想根据首字母查询品牌的话,那直接取汉字首字母查询改怎么取?

2016-07-07 15:04 来源:www.chinab4c.com 作者:ecshop专家

如果想根据首字母查询品牌的话,那直接取汉字首字母查询改怎么取?

回答:
通过编码处理。取得汉语的转换拼音

两种方法
一、在数据库中添加字段,后台添加每一个商品时手动添加首字母,比较麻烦,但是方便搜索
二、在搜索时通过获取汉字首字母方法,对照搜索。
我是用第二种!!

非常感谢,在搜索时通过获取汉字首字母方法,对照搜索。该怎么弄,请教大侠?

你ni
好hao
女nv
这还不简单
$array =array('n'=>array('你',"女"),'hao'=>array('好'));

就成了。



送上一个获取汉字首字母的函数
  1. function getfirstchar($s0){
  2. if($fchar>=ord("a") and $fchar<=ord("Z") ){ return strtoupper($s0{0}); }
  3. $s=iconv("UTF-8","gb2312", $s0);
  4. $asc=ord($s{0})*256+ord($s{1})-65536;
  5. if($asc>=-20319 and $asc<=-20284)return "A";
  6. if($asc>=-20283 and $asc<=-19776)return "B";
  7. if($asc>=-19775 and $asc<=-19219)return "C";
  8. if($asc>=-19218 and $asc<=-18711)return "D";
  9. if($asc>=-18710 and $asc<=-18527)return "E";
  10. if($asc>=-18526 and $asc<=-18240)return "F";
  11. if($asc>=-18239 and $asc<=-17923)return "G";
  12. if($asc>=-17922 and $asc<=-17418)return "H";
  13. if($asc>=-17417 and $asc<=-16475)return "J";
  14. if($asc>=-16474 and $asc<=-16213)return "K";
  15. if($asc>=-16212 and $asc<=-15641)return "L";
  16. if($asc>=-15640 and $asc<=-15166)return "M";
  17. if($asc>=-15165 and $asc<=-14923)return "N";
  18. if($asc>=-14922 and $asc<=-14915)return "O";
  19. if($asc>=-14914 and $asc<=-14631)return "";
  20. if($asc>=-14630 and $asc<=-14150)return "Q";
  21. if($asc>=-14149 and $asc<=-14091)return "R";
  22. if($asc>=-14090 and $asc<=-13319)return "S";
  23. if($asc>=-13318 and $asc<=-12839)return "T";
  24. if($asc>=-12838 and $asc<=-12557)return "W";
  25. if($asc>=-12556 and $asc<=-11848)return "X";
  26. if($asc>=-11847 and $asc<=-11056)return "Y";
  27. if($asc>=-11055 and $asc<=-10247)return "Z";
  28. return false;
  29. }
  30. echo getfirstchar("先");
复制代码
根据自己实际情况修改吧

谢谢,很好!