一、去重函数
function assoc_unique($arr, $key) {
$tmp_arr = array();
foreach ($arr as $k => $v) {
if (in_array($v[$key], $tmp_arr)) {//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
unset($arr[$k]);
} else {
$tmp_arr[] = $v[$key];
}
}
sort($arr); //sort函数对数组进行排序
return $arr;
}
二、区域转拼音去重排序重组
//按字母获取城市
public function getCityList(){
$area = array(
'0'=> array(
"province"=>'省份',
"city"=>'城市'
"district"=>'区域'
),
'1'=> array(
"province"=>'省份1',
"city"=>'城市1'
"district"=>'区域1'
),
'2'=> array(
"province"=>'省份2',
"city"=>'城市2'
"district"=>'区域2'
)
)
//文字转拼音取首字母
Vendor('Pinyin.ChinesePinyin');
$pinyin = new \ChinesePinyin();
foreach($area as $key=>$v){
$zm = $pinyin->TransformWithoutTone($v['district']);
if($zm!=""){
$area[$key]['zm'] = strtoupper(substr($zm,0,1));
}
}
//去除区域重复
$area = assoc_unique($area,'district');
//按相同字母重组
$arr = array();
foreach($area as $key=>$v){
$arr[$v['zm']][] = $v;
}
//按字母排序
ksort($arr);
//重新组成排序后数组
$arr2 = array();
$i = 0;
foreach($arr as $key=>$v){
$arr2[$i]['zm'] = $key;
$arr2[$i]['son'] = $v;
$i++;
}
return $arr2;
}
|