湖南省公司注册网站,山东网站建设公司电话,整站优化系统,网站建设市场规模在项目中遇到需要把游戏进行字母排序#xff0c;于是百度到一个格式化的首字母的方法。 /*** name php获取中文字符拼音首字母* param $str* return null|string*/public function getFirstCharter($str){if (empty($str)) {return ;}$fchar ord($str{0});if ($fchar or… 在项目中遇到需要把游戏进行字母排序于是百度到一个格式化的首字母的方法。 /*** name php获取中文字符拼音首字母* param $str* return null|string*/public function getFirstCharter($str){if (empty($str)) {return ;}$fchar ord($str{0});if ($fchar ord(A) $fchar ord(z)) {return strtoupper($str{0});}$s1 iconv(UTF-8, gb2312, $str);$s2 iconv(gb2312, UTF-8, $s1);$s $s2 $str ? $s1 : $str;$asc ord($s{0}) * 256 ord($s{1}) - 65536;if ($asc -20319 $asc -20284) {return A;}if ($asc -20283 $asc -19776) {return B;}if ($asc -19775 $asc -19219) {return C;}if ($asc -19218 $asc -18711) {return D;}if ($asc -18710 $asc -18527) {return E;}if ($asc -18526 $asc -18240) {return F;}if ($asc -18239 $asc -17923) {return G;}if ($asc -17922 $asc -17418) {return H;}if ($asc -17417 $asc -16475) {return J;}if ($asc -16474 $asc -16213) {return K;}if ($asc -16212 $asc -15641) {return L;}if ($asc -15640 $asc -15166) {return M;}if ($asc -15165 $asc -14923) {return N;}if ($asc -14922 $asc -14915) {return O;}if ($asc -14914 $asc -14631) {return P;}if ($asc -14630 $asc -14150) {return Q;}if ($asc -14149 $asc -14091) {return R;}if ($asc -14090 $asc -13319) {return S;}if ($asc -13318 $asc -12839) {return T;}if ($asc -12838 $asc -12557) {return W;}if ($asc -12556 $asc -11848) {return X;}if ($asc -11847 $asc -11056) {return Y;}if ($asc -11055 $asc -10247) {return Z;}return 其他;} 上面的过滤只能过滤到一部分由于使用中文作为key的时候可能会有各种问题于是我进行了再排序过滤。 /*** 格式化游戏专区* Author LHC* DateTime 2017-06-04T15:48:590800*/public function formatGameCharter($gameData){if (empty($gameData)) {return $gameData;}$keyArr [];$gameZone [];foreach ($gameData as $game) {$key $this-getFirstCharter($game[name]);if (in_array($key, $keyArr)) {$gameZone[$key][key] $key;$gameZone[$key][list][] [gameId intval($game[id]),appId intval($game[appId]),gameName $game[name],];} else {$keyArr[] $key;}}array_multisort($gameZone);$gameZone array_values($gameZone);return $gameZone;} 也有一种办法是先把26个字母跟其他先组合好一个数组再遍历插入数组里面这样做的不好的地方我觉得是如果某个字母下面的游戏为空时该字母下面空荡荡的不好看当然还是要看实际需求如果你觉得可以解决你的问题也可以那样做。 转载于:https://www.cnblogs.com/ailhc/p/6940762.html