PHP 中如何使用自定义比较函数对数组进行排序,并保留键名?
php 中使用自定义比较函数可以对数组进行排序,并保留键名。为了做到这一点,可以使用 usort() 函数,它需要一个数组和一个回调函数作为参数。回调函数接收两个数组元素,返回一个整数 (-1、0 或 1) 来指示排序顺序。
PHP 中使用自定义比较函数对数组进行排序,并保留键名
使用自定义比较函数对数组进行排序是数组操作中的常用操作。在 PHP 中,可以使用 usort()
函数轻松实现此目的。
语法
usort(array, callable)
- array:要排序的数组。
- callable:用于比较数组元素的回调函数。它必须接受两个参数(两个数组元素),并返回一个整数(-1、0 或 1)。
实战案例
以下示例展示了如何使用自定义比较函数对数组中的键名进行排序,同时保留键名:
<?php
// 待排序的数组
$arr = [
'a' => 10,
'c' => 5,
'b' => 20,
];
// 自定义比较函数
$compare = function ($a, $b) {
return strcmp($a['key'], $b['key']);
};
usort($arr, $compare);
// 输出排序后的数组
print_r($arr);
在这个例子中,compare
函数将两个键名($a['key']
和 $b['key']
)作为参数,并使用 strcmp()
函数对其进行比较。strcmp()
函数返回 -1、0 或 1,指示第一个字符串是否小于、等于或大于第二个字符串。
调用 usort()
函数时,它将指定的比较函数应用于 $arr
数组中的每个元素。如果 compare
函数返回 -1,则第一个元素将排在第二个元素之前;如果返回 1,则反之;如果返回 0,则元素的顺序保持不变。
最终输出为:
Array
(
[a] => 10
[b] => 20
[c] => 5
)
数组按照键名从小到大排序,同时保留了键名。
以上就是PHP 中如何使用自定义比较函数对数组进行排序,并保留键名?的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341