public function index(){
/**
* 代码共六位,两位一组,从左到右依次代表 省-市-县
代码 => 父级id
ppccxx => ppcc00
如: 110101(东城区) => 110100(市辖区) 110228(密云县) => 110200(县)
ppcc00 => pp0000
如: 110100(市辖区) => 110000(北京市) 130100(石家庄市) => 130000(河北省)
pp0000 => 0
如: 110000(北京市) => 0(省级)
CREATE TABLE `d_area` (
`id` int(10) unsigned NOT NULL,
`area` varchar(255) NOT NULL COMMENT '地区名称',
`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父级地区ID',
PRIMARY KEY (`id`),
KEY `pid` (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='地区信息表';
*/
header('content-type:text/html;charset=utf-8');
$content = file_get_contents('./Document/area_data.txt');
$content = array_filter(explode("\r\n", trim($content)));
foreach($content as $value){
$address = array_values(array_filter(explode(' ', $value)));
$data = array('id'=>$address[0], 'area'=>trim($address[1]));
M('area')->add($data);
}
//区级
$city = M('area')->where('id LIKE "____00"')->getField('id', true);
foreach($city as $code){
M('area')->where('id LIKE "'.substr($code, 0, 4).'__"')->save(array('pid'=>$code));
}
//市级
$province = M('area')->where('id LIKE "__0000"')->getField('id', true);
foreach($province as $code){
M('area')->where('id LIKE "'.substr($code, 0, 2).'__00"')->save(array('pid'=>$code));
}
//省级
M('area')->where('id LIKE "__0000"')->save(array('pid'=>0));
}
}生成表数据:附件 d_area.rar ( 26.81 KB 下载:245 次 )
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。