(之前發的這篇博文因為含有敏感關鍵字,只好重發一遍了)
<?php $str = "我們可以在瀏覽器中看到,當鼠標移到元素上時,元素開始向右移動,開始比較慢,之后則比較快,移開時按原曲線回到原點。"; $len = mb_strlen($str); $sta = []; for($i = 0; $i<$len; $i++){ $tmp = mb_substr($str,$i,1); if($tmp != " "){ array_push($sta,$tmp); } } //將中文字符轉換成gbk編碼,必須先將數組轉換為字符串,然后轉換編碼,最后將字符串反轉成數組 $sta = eval('return '.mb_convert_encoding(var_export($sta,true), "gbk","utf-8").";"); //按數組值進行排序 sort($sta); //將中文字符轉換成utf-8編碼 $sta = eval('return '.mb_convert_encoding(var_export($sta,true), "utf-8", "gbk").";"); var_dump($sta);
在PHP中,將一個漢字數組按照拼音首字母進行排序
知識點:
- PHP官方手冊,多字節字符處理 mb_string;
- var_expost函數,輸出關於傳遞給該函數的變量的結構信息,與var_dump的區別是其輸出的是合法的php代碼。若第二個參數設置為true,則從而返回變量的表示;
- mb_substr(),獲取部分字符串,與substr不同的是,這個函數的分割是以完整的字符分割,而substr是以字節來分割的;