如何实现分类按照拼音第一字母排序显示

萌到你眼炸
816次浏览
2020年08月16日 19:38
最佳经验
本文由作者推荐

ted演讲稿-南昌二十中


如何实现分类按照拼音第一字母排序显示

http:
第一步、先写一个提取品牌第一字母的函数 其实 这是最重要的
$$dict=array(

'a'=>0xB0C4,

'b'=>0xB2C0,

'c'=>0xB4ED,

'd'=>0xB6E9,

'e'=>0xB7A1,

'f'=>0xB8C0,

'g'=>0xB9FD,

'h'=>0xBBF6,

'j'=>0xBFA5,



'k'=>0xC0AB,

'l'=>0xC2E7,

'm'=>0xC4C2,

'n'=>0xC5B5,

'o'=>0xC5BD,

'p'=>0xC6D9,

'q'=>0xC8BA,

'r'=>0xC8F5,

's'=>0xCBF9,

't'=>0xCDD9,

'w'=>0xCEF3,

'x'=>0xD188,



'y'=>0xD4D0,

'z'=>0xD7F9,

);

取GB2312字符串首字母,原理是GBK汉字是按拼音顺序编码的.

自定义函数get_letter()
function get_letter($$input)

{
global $$dict;

$$str_1 = substr($$input, 0, 1);

if ($$str_1 >= chr(0x81) && $$str_1 <= chr(0xfe)) {

$$num = hexdec(bin2hex(substr($$input, 0, 2)));

foreach ($$dict as $$k=>$$v){

if($$v>=$$num)


break;

}

return $$k;

}

else{

return $$str_1;

}
}
?>
第二步 结合我们的系统进行查询
sql = 'SELECT * FROM ' . $$GLOBALS['ecs']->table('brand').' order by brand_name';
$$brand_array = $$GLOBALS['db']->getall($$sql);
$$brand_list = array();
for($$i=0;$$i{
$$brand_list[get_letter($$brand_array[$$ i]['brand_name'])][$$brand_array[$$i]['brand_id']]
$$brand_array[$$i]['brand_name'].

}
=


?>
得到一个以第一字母为主键的数组
第三步 显示
foreach ($$brand_list AS $$row=>$$idx)
{

$$show .=
cellspacing=