/** * 获取三级联动城市信息 * @return bool|mixed */ public static function getAmapAll(){ try { $key = self::CACHE_PREFIX . 'amapall'; $ret = Cache::get($key, function() use($key) { $cityall = City::all(); if($cityall->isEmpty()) { return false; } $cityall = $cityall->toArray(); $city = self::recursionTree($cityall,'cityid','pid'); $city = serialize($city); Cache::put($key, $city, 86400); return $city; }); if(!$ret) { return false; } $ret = unserialize($ret); return $ret; } catch (\Exception $e) { Log::error($e); return false; } } /** * 分支树显示无限分类 * @param $arr 需要处理的数组 * @param $key id名称 * @param $pkey 父类id名称 * @param $pid 父id * @return $list 返回的数组 */ public static function recursionTree($arr = [], $key = 'id', $pkey = 'pid', $pid = 0) { $list = array(); foreach($arr as $val){ if($val[$pkey] == $pid){ $tmp = self::recursionTree($arr,$key,$pkey,$val[$key]); if($tmp){ $val['child'] = $tmp; } $list[] = $val; } } return $list; }
php获取三级联动城市信息
最新推荐文章于 2024-08-20 11:45:38 发布