企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
>[info] 收货地址拆分省市区 还可参考rrzuji(yii)代码:common/Tool/AddressTool.php * 方法: ~~~ <?php namespace common\Tool; /** * @author XiaoMengHao * @date 2022年07月07日 * * Class LocationTool * @package common\Tool */ class LocationTool { function addressDetail($address) { //实际订单地址格式如下,贼乱: //天津市市辖区东丽区天津市东丽区金钟河街保利玫瑰、重庆市市辖区南岸区茶园新区高通、 //福建省 漳州市 芗城区 福建省漳州市芗城区 //北京 北京市 海淀区 市海淀区学院路街道学院南路12号北京师范大学 //山东省-青岛市-胶州市-三里河街道杭州路682号 家园 $regex = "/|\/|\~|\,|\。|\!|\?|\“|\”|\【|\】|\『|\』|\:|\;|\《|\》|\’|\‘|\ |\·|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\+|\{|\}|\:|\<|\>|\?|\[|\]|\,|\.|\/|\;|\'|\`|\-|\=|\\\|\|/"; //去掉特殊字符 $address= preg_replace($regex,"",$address); preg_match('/(.*?(省|自治区))/', $address, $matches); if (count($matches) > 1) { $province = $matches[count($matches) - 2]; $address = str_replace($province, '', $address); } preg_match('/(.*?(市|自治州|地区|区划|县))/', $address, $matches); if (count($matches) > 1) { $city = $matches[count($matches) - 2]; $address = str_replace($city, '', $address); preg_match('/北京市|天津市|上海市|重庆市/', $city, $matches); if (!empty($matches[0])) { $city = $matches[0]; $province = $city; } } preg_match('/(.*?(区|县|镇|乡|街道))/', $address, $matches); if (count($matches) > 1) { $area = $matches[count($matches) - 2]; $address = str_replace($area, '', $address); } return [ 'province' => isset($province) ? $province : '', 'city' => isset($city) ? $city : '', 'area' => isset($area) ? $area : '', ]; } } ~~~ * 示例: ~~~ //地域分布 $locationTool = new LocationTool(); $address = $locationTool->addressDetail($v['address']); $provice = empty($address['province']) ? '' : $address['province']; $city = empty($address['city']) ? '' : $address['city']; ~~~