1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php 数组根据字母排序 php 数组 按拼音首字母 排序 并分组

php 数组根据字母排序 php 数组 按拼音首字母 排序 并分组

时间:2020-12-16 08:33:58

相关推荐

php 数组根据字母排序 php 数组 按拼音首字母 排序 并分组

PHP 数组 按照拼音 首字母 排序 并排序:

需要排序的数组 格式:

$list = [

[

'name' => '张三',

'py' => 'zhnagsan'

],

[

'name' => '李四',

'py' => 'lisi'

],

[

'name' => '王五',

'py' => 'wangwu'

],

[

'name' => '赵六',

'py' => 'zhaoliu'

],

];

$resault = data_letter_sort($list, 'py');

方法 代码 如下:

/**

* 按照 字母 分组 并 排序

*

* @param {Array} $list ; 需要 排序的 数据, 一维数组

* @param {string} $field ; 排序 需要 依据 的字段,该字段 必须为 拼音

*/

function data_letter_sort($list, $field) {

$resault = array();

foreach( $list as $key => $val ){

// 添加 # 分组,用来 存放 首字母不能 转为 大写英文的 数据

$resault['#'] = array();

// 首字母 转 大写英文

$letter = strtoupper( substr($val[$field], 0, 1) );

// 是否 大写 英文 字母

if( !preg_match('/^[A-Z]+$/', $letter) ){

$letter = '#';

}

// 创建 字母 分组

if( !array_key_exists($letter, $resault) ){

$resault[$letter] = array();

}

// 字母 分组 添加 数据

Array_push($resault[$letter], $val);

}

// 依据 键名 字母 排序,该函数 返回 boolean

ksort($resault);

// 将 # 分组 放到 最后

$arr_last = $resault['#'];

unset($resault['#']);

$resault['#'] = $arr_last;

return $resault;

}

js 数组 按拼音 首字母排序 并分组:点击连接查看

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。