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 中如何使用自定义比较函数对数组进行排序,并保留键名?的详细内容,更多请关注php中文网其它相关文章!