在 php 中按值排序数组,同时保留键名的方法是:使用 usort() 函数按值排序数组。向 usort() 函数传递一个匿名函数作为比较函数,该函数返回元素值的差值。usort() 会根据匿名函数对数组进行排序,同时保持键名不变。

如何在 PHP 中按值排序数组并保留键名?
在 PHP 中,可以使用 asort() 函数根据值对数组进行升序排序,或使用 arsort() 函数进行降序排序。但是,这两个函数都会破坏数组中的键名。
如果要按值排序数组,同时保持键名,可以使用 usort() 函数,如下所示:
立即学习“PHP免费学习笔记(深入)”;
$arr = array( 'a' => 10, 'b' => 5, 'c' => 20);usort($arr, function($a, $b) { return $a - $b;});print_r($arr);
输出:
如知AI笔记
如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型
27 查看详情
Array( [b] => 5 [a] => 10 [c] => 20)
在上面的代码中:
usort() 接受两个参数:要排序的数组 $arr 和一个用于比较元素值的匿名函数。匿名函数接收两个元素 $a 和 $b,并返回它们的差值。usort() 会对数组中的元素进行排序,使用匿名函数作为比较函数。经过排序后,数组中的键名保持不变。
实战案例
考虑一个包含学生成绩的数组:
$students = array( 'John' => 90, 'Jane' => 85, 'Peter' => 95);
要按成绩升序排列学生姓名,同时保持姓名作为键名,可以使用以下代码:
usort($students, function($a, $b) { return $a - $b;});
输出:
Array( [Jane] => 85 [John] => 90 [Peter] => 95)
以上就是PHP 数组按值排序后如何保持键名?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/561693.html
微信扫一扫
支付宝扫一扫