Get my city list in PHP, sort it, loop through AZ! List the results with the same first letter!, put it into an array with AZ as the key, and then return the result I want

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"
    ]

Guess you like

Origin blog.csdn.net/qq_32450471/article/details/131144793