php数组 根据数组里面的名称首字母 排列成ABCD样式

这篇博客介绍了如何使用PHP将数组根据元素名称的首字母排序,以实现类似ABCD的展示效果。内容涉及到小程序前端样式配置和JSON页面的构建,同时提及了JS的相关应用。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1 首先先查询数据

public function index(){
  $brand = StoreBrand::where('is_show',1)->order('sort desc,id desc')->where('pid','<>',0)->select()->toArray();
  $res =  $this->getDistrict($brand); //数组带入查询并排列 
dump($res) ;

}

public function getDistrict( $areaData )
{
   
   // 按照首字母拼音排序
   $district = array();
   foreach( $areaData as $name )
   {
      //取出第一个汉字的首字母(**需要排列的名称,我这里是cate_name**)
      //获取首字母ABCD
      $snameFirstChar = $this->_getFirstCharter($name['cate_name']); 
      //以这个首字母作为key// value值不变
      $district[$snameFirstChar][] =$name;
   }
   ksort($district);//排序
   return $district;
}


/**
 *字母排序
 */
public function _getFirstCharter($str)
{
   if(empty($str))
   {
      return '';
   }
   $fchar=ord($str{0});
   if($fchar>=ord('A')&&$fchar<=ord('z'))
      return strtoupper($str{0});
   $s1=iconv('UTF-8','GBK',$str);
   $s2=iconv('GBK','UTF-8',$s1);
   $s=$s2==$str?$s1:$str;
   $asc=ord($s{0})*256+ord($s{1})-65536;
   if($asc>=-20319&&$asc<=-20284) return 'A';
   if($asc>=-20283&&$asc<=-19776) return 'B';
   if($asc>=-19775&&$asc<=-19219) return 'C';
   if($asc>=-19218&&$asc<=-18711) return 'D';
   if($asc>=-18710&&$asc<=-18527) return 'E';
   if($asc>=-18526&&$asc<=-18240) return 'F';
   if($asc>=-18239&&$asc<=-17923) return 'G';
   if($asc>=-17922&&$asc<=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值