PHP で都市のリストを取得し、ソートし、AZ をループして、最初の文字が同じである結果をリストし、AZ をキーとして配列に入れ、必要な結果を返します。

array:368 [
  0 => array:8 [
    "id" => 2
    "name" => "北京市"
    "pid" => 1
    "level" => 2
    "adcode" => "110100"
    "center" => "116.405285,39.904989"
    "alias" => "beijingchengqu"
    "letter" => "B"
  ]
  1 => array:8 [
    "id" => 20
    "name" => "上海城区"
    "pid" => 19
    "level" => 2
    "adcode" => "310100"
    "center" => "121.472644,31.231706"
    "alias" => "shanghaichengqu"
    "letter" => "S"
  ]
  2 => array:8 [
    "id" => 38
    "name" => "天津城区"
    "pid" => 37
    "level" => 2
    "adcode" => "120100"
    "center" => "117.190182,39.125596"
    "alias" => "tianjinchengqu"
    "letter" => "T"
  ]
 /**
     * 获取所有城市,字母整排
     * @param array $city
     * @return array
     */
    public function getCityLetterSort(array $city)
    {
        $array = [];

        if (is_array($city)) {
            
            for ($i = 'A'; $i <= 'Z'; $i++) {

                foreach ($city as $k => $v) {
                    if ($i == $v['letter']) {
                        $array[$i][$k] = $v;
                    }
                }

                if ($i == 'Z') {
                    break;
                }
            }
        }

        foreach ($array as $key => $value) {
            $array[$key] = array_values($value);
        }

        return $array;
    }

 $city = getCityLetterSort($city);

array:22 [
  "A" => array:11 [
    0 => array:8 [
      "id" => 1068
      "name" => "安阳市"
      "pid" => 943
      "level" => 2
      "adcode" => "410500"
      "center" => "114.39248,36.098779"
      "alias" => "anyangshi"
      "letter" => "A"
    ]
    1 => array:8 [
      "id" => 1601
      "name" => "阿坝藏族羌族自治州"
      "pid" => 1419
      "level" => 2
      "adcode" => "513200"
      "center" => "102.224504,31.899427"
      "alias" => "abacangzuqiangzuzizhizhou"
      "letter" => "A"
    ]
    2 => array:8 [
      "id" => 2121
      "name" => "安庆市"
      "pid" => 2081
      "level" => 2
      "adcode" => "340800"
      "center" => "117.115349,30.531828"
      "alias" => "anqingshi"
      "letter" => "A"
    ]

おすすめ

転載: blog.csdn.net/qq_32450471/article/details/131144793