php数组如何按拼音顺序排序
<code>php</code><code>$pinyin = array( array('name'=>'梁朝伟','age'=>23), array('name'=>'andy','age'=>24), array('name'=>'黎明','age'=>19), array('name'=>'郭富城','age'=>20) ); </code>
name字段转为拼音然后按字母排序,如果第一个字母相同比较第二个,希望结果为
<code>php</code><code>$pinyin = array( array('name'=>'andy','age'=>24), array('name'=>'郭富城','age'=>20) array('name'=>'梁朝伟','age'=>23), array('name'=>'黎明','age'=>19), ); </code>
找到汉字转拼音库
回复内容:
<code>php</code><code>$pinyin = array( array('name'=>'梁朝伟','age'=>23), array('name'=>'andy','age'=>24), array('name'=>'黎明','age'=>19), array('name'=>'郭富城','age'=>20) ); </code>
name字段转为拼音然后按字母排序,如果第一个字母相同比较第二个,希望结果为
<code>php</code><code>$pinyin = array( array('name'=>'andy','age'=>24), array('name'=>'郭富城','age'=>20) array('name'=>'梁朝伟','age'=>23), array('name'=>'黎明','age'=>19), ); </code>
找到汉字转拼音库
最近也碰到了要对汉字排序的问题, Collator 效果还不错, 参考 Comparing UTF-8 String
<code>$name = [...]; (new \Collator('zh-CN'))->asort($name); var_dump( $name ); </code>
实际前后:
<code> 0 => '袁次阳' 1 => '段纪明' 2 => '朱公伟' 3 => '朱文渊' 4 => '朱符' 5 => '卢子干' 6 => '皇甫义真' 7 => '阎忠' 8 => '王子师' 9 => '士孙君荣' 10 => '荀慈明' 11 => '黄世英孙' 12 => '赵子柔' 13 => '蔡伯喈' 14 => '蔡文姬' 15 => '杨文先' 16 => '杨德祖' 17 => '吴匡' 18 => '马翁叔' 19 => '郑公业' 20 => '丁建阳' 21 => '尉韩暹' 22 => '胡才' 23 => '李乐' 24 => '杨奉' 25 => '张雅叔' 26 => '杨丑' 27 => '眭白兔' 28 => '蒋石' 29 => '吉本' 30 => '吉文然' 31 => '吉思然' 32 => '耿季行' 33 => '司直韦晃' 34 => '郎中张钧' </code>
=>
<code> 13 => '蔡伯喈' 14 => '蔡文姬' 20 => '丁建阳' 1 => '段纪明' 32 => '耿季行' 22 => '胡才' 6 => '皇甫义真' 11 => '黄世英孙' 29 => '吉本' 31 => '吉思然' 30 => '吉文然' 28 => '蒋石' 34 => '郎中张钧' 23 => '李乐' 5 => '卢子干' 18 => '马翁叔' 9 => '士孙君荣' 33 => '司直韦晃' 27 => '眭白兔' 8 => '王子师' 21 => '尉韩暹' 17 => '吴匡' 10 => '荀慈明' 7 => '阎忠' 26 => '杨丑' 16 => '杨德祖' 24 => '杨奉' 15 => '杨文先' 0 => '袁次阳' 25 => '张雅叔' 12 => '赵子柔' 19 => '郑公业' 4 => '朱符' 2 => '朱公伟' 3 => '朱文渊' </code>
<code>$sort = array(); foreach($pinyin as $key => $item) { $py = zhcnToPinyin($item['name']); $pinyin[$key]['pinyin'] = $py; $sort[] = $py; } array_multisort($sort, SORT_ASC, $pinyin); function zhcnToPinyin() { //TODO 汉字转拼音 } </code>
楼上正解,手册看一下array_multisort()
不懂楼主的做法,汉字排序时本来就是按拼音顺序排的,因为汉字编码表本身就是按照字母顺序来的。echo "梁朝伟" 拼音排序还要用拼音库的都太缺乏基础知识了。
@incNick 其实GBK编码也不是完全按照首字母排序的,你可以去查一查GBK编码表,希望大家不要被误导

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元
