Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert Klassen und Methoden zum Sortieren von Namen nach Anfangsbuchstaben

PHP implementiert Klassen und Methoden zum Sortieren von Namen nach Anfangsbuchstaben

PHP中文网
PHP中文网Original
2017-09-01 16:55:213430Durchsuche

thinkphp sortiert Namen nach Anfangsbuchstaben

<?php
public function getFirstChar($s){
$s0 = mb_substr($s,0,3); //获取名字的姓 
$s = iconv(&#39;UTF-8&#39;,&#39;gb2312&#39;, $s0); //将UTF-8转换成GB2312编码 
//dump($s0);
if (ord($s0)>128) { //汉字开头,汉字没有以U、V开头的 
$asc=ord($s{0})*256+ord($s{1})-65536; 
if($asc>=-20319 and $asc<=-20284)return "A"; 
if($asc>=-20283 and $asc<=-19776)return "B"; 
if($asc>=-19775 and $asc<=-19219)return "C"; 
if($asc>=-19218 and $asc<=-18711)return "D"; 
if($asc>=-18710 and $asc<=-18527)return "E"; 
if($asc>=-18526 and $asc<=-18240)return "F"; 
if($asc>=-18239 and $asc<=-17760)return "G"; 
if($asc>=-17759 and $asc<=-17248)return "H"; 
if($asc>=-17247 and $asc<=-17418)return "I"; 
if($asc>=-17417 and $asc<=-16475)return "J"; 
if($asc>=-16474 and $asc<=-16213)return "K"; 
if($asc>=-16212 and $asc<=-15641)return "L"; 
if($asc>=-15640 and $asc<=-15166)return "M"; 
if($asc>=-15165 and $asc<=-14923)return "N"; 
if($asc>=-14922 and $asc<=-14915)return "O"; 
if($asc>=-14914 and $asc<=-14631)return "P"; 
if($asc>=-14630 and $asc<=-14150)return "Q"; 
if($asc>=-14149 and $asc<=-14091)return "R"; 
if($asc>=-14090 and $asc<=-13319)return "S"; 
if($asc>=-13318 and $asc<=-12839)return "T"; 
if($asc>=-12838 and $asc<=-12557)return "W"; 
if($asc>=-12556 and $asc<=-11848)return "X"; 
if($asc>=-11847 and $asc<=-11056)return "Y"; 
if($asc>=-11055 and $asc<=-10247)return "Z"; 
}else if(ord($s)>=48 and ord($s)<=57){ //数字开头 
switch(iconv_substr($s,0,1,&#39;utf-8&#39;)){ 
case 1:return "Y"; 
case 2:return "E"; 
case 3:return "S"; 
case 4:return "S"; 
case 5:return "W"; 
case 6:return "L"; 
case 7:return "Q"; 
case 8:return "B"; 
case 9:return "J"; 
case 0:return "L"; 
} 
}else if(ord($s)>=65 and ord($s)<=90){ //大写英文开头 
return substr($s,0,1); 
}else if(ord($s)>=97 and ord($s)<=122){ //小写英文开头 
return strtoupper(substr($s,0,1)); 
} 
else 
{ 
return iconv_substr($s0,0,1,&#39;utf-8&#39;); 
//中英混合的词语,不适合上面的各种情况,因此直接提取首个字符即可 
} 
} 
public function addPeople()
{
$userName = array(&#39;张三&#39;,&#39;马大帅&#39;,&#39;李四&#39;,&#39;王五&#39;,&#39;小二&#39;,&#39;猫蛋&#39;,&#39;狗蛋&#39;,&#39;王花&#39;,&#39;三毛&#39;,&#39;小明&#39;,&#39;李刚&#39;,&#39;张飞&#39;); 
sort($userName); 
foreach($userName as $name){ 
$char = $this->getFirstChar($name); 
$nameArray = array(); 
if(count($charArray[$char])!=0){ 
$nameArray = $charArray[$char]; 
} 
array_push($nameArray,$name); 
$charArray[$char] = $nameArray;
} 
ksort($charArray);
$this->assign(&#39;_list&#39;,$charArray);
}
?>

Seitenanzeige

<foreach name="_list" item="vo" key="k">
<p>{$k}</p>
<foreach name="vo" item="l">
<span class="name">{$l}</span>
</foreach>
</foreach>

Rendering: PHP implementiert Klassen und Methoden zum Sortieren von Namen nach Anfangsbuchstaben

Das obige ist der detaillierte Inhalt vonPHP implementiert Klassen und Methoden zum Sortieren von Namen nach Anfangsbuchstaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn