PHP獲取陣列某欄位首字母並且分組排序詳解

2021-09-19 12:50:37 字數 2710 閱讀 8271

public function city()

//把獲取到首字母的陣列排序

$sort="sort_asc";

$fenlei=$this->arraysequence($fenlei, "letter",$sort);

//建立新陣列

$fenleis=array();

//通過字段相同的分到乙個新陣列

foreach($fenlei as $v)

var_dump($fenleis);

}

接下來是獲取首字母的**:

/**

* * @param unknown $str 提供的欄位名

* @return string|null

*/public function getfirstcharter($str)

$fchar = ord($str);

if ($fchar >= ord('a') && $fchar <= ord('z'))

return strtoupper($str);

$s1 = iconv('utf-8', 'gb2312', $str);

$s2 = iconv('gb2312', 'utf-8', $s1);

$s = $s2 == $str ? $s1 : $str;

$asc = ord($s) * 256 + ord($s) - 65536;

if ($asc >= -20319 && $asc <= -20284)

if ($asc >= -20283 && $asc <= -19776)

if ($asc >= -19775 && $asc <= -19219)

if ($asc >= -19218 && $asc <= -18711)

if ($asc >= -18710 && $asc <= -18527)

if ($asc >= -18526 && $asc <= -18240)

if ($asc >= -18239 && $asc <= -17923)

if ($asc >= -17922 && $asc <= -17418)

if ($asc >= -17417 && $asc <= -16475)

if ($asc >= -16474 && $asc <= -16213)

if ($asc >= -16212 && $asc <= -15641)

if ($asc >= -15640 && $asc <= -15166)

if ($asc >= -15165 && $asc <= -14923)

if ($asc >= -14922 && $asc <= -14915)

if ($asc >= -14914 && $asc <= -14631)

if ($asc >= -14630 && $asc <= -14150)

if ($asc >= -14149 && $asc <= -14091)

if ($asc >= -14090 && $asc <= -13319)

if ($asc >= -13318 && $asc <= -12839)

if ($asc >= -12838 && $asc <= -12557)

if ($asc >= -12556 && $asc <= -11848)

if ($asc >= -11847 && $asc <= -11056)

if ($asc >= -11055 && $asc <= -10247)

return null;

}

最後就是把獲取到的陣列進行排序

/**

* @params array $array 需要排序的陣列

* @params string $field 排序的字段

* @params string $sort 排序順序標誌 sort_desc 降序;sort_asc 公升序

*/function arraysequence($array, $field, $sort = 'sort_desc')

}array_multisort($arrsort[$field], constant($sort), $array);

return $array;

}

最後展示一下顯示的效果

array(8) 

} ["b"]=>

array(1)

} ["f"]=>

array(1)

} ["g"]=>

array(2)

[1]=>

array(3)

} ["h"]=>

array(4)

[1]=>

array(3)

[2]=>

array(3)

[3]=>

array(3)

} ["j"]=>

array(3)

[1]=>

array(3)

[2]=>

array(3)

} ["s"]=>

array(2)

[1]=>

array(3)

} ["z"]=>

array(1)

}}

以上就是這篇文章的全部內容了,本人工作時間不長技術不好請多多擔待。

php 首字母排序,PHP陣列按首字母怎麼排序

php陣列按首字母排序的方法 一 問題 給定陣列要求實現按照其漢字首字母排序 pinyin array array name 梁朝偉 age 23 array name andy age 24 array name 黎明 age 19 array name 郭富城 age 20 二 解決方法 cre...

php 獲取姓名拼音首字母

url created by wangbinandi gmail.com at 2008 12 29 21 12 漢字拼音首字母工具類 注 英文的字串 不變返回 包括數字 eg abc123 abc123 中文字串 返回拼音首字元 eg.王小明 wxm 中英混合串 返回拼音首字元和英文 eg.我i我...

獲取漢字拼音首字母

有個專案需要用到生成漢字的首字母,但從網上查了一下,對於多音字的處理都不是很好,所以就利用pinyin4j這個工具包自己寫了乙個。用到的jar包是pinyin4j 2.5.0.jar 獲取拼音首字母,多音字用逗號隔開 public static string getfirstspell string...