WordPress函数:wp_list_sort 功能强大的数组排序函数

06月/20日/WordPress/浏览 181

PHP中的排序函数,对于关联数组,都是根据key值排序,而无法根据value的某个字段值排序。


WordPress 提供了函数 wp_list_sort ,正好填补了这个空白。(虽然,造这样一个轮子,并不复杂;但是,避免重复造轮子是美德。)


函数原型:


wp_list_sort( array $list, string|array $orderby = array(), string $order = 'ASC', bool $preserve_keys = false )


$list


(array) (必须的) 一个数组或者对象


$orderby


(string|array) (可选的) 一个字段名,或者一个数组,有字段名=>排序方式组成(比如:['field1' => 'ASC', 'field2' => 'DESC'])。


默认: array()


$order


(string) (可选的) 升序 'ASC' 或者 'DESC'。只有在$orderby是字符串时有效。


默认: 'ASC'


$preserve_keys


(bool) (可选的) 是否保留原来的key。


默认: false


使用举例:


$animals = [
    'alligator' => [ 'name' => 'alligator', 'fly' => false, 'class' => 'reptile' ],
    'dog'       => [ 'name' => 'dog',       'fly' => false, 'class' => 'mammal' ],
    'cat'       => [ 'name' => 'cat',       'fly' => false, 'class' => 'mammal' ],
    'falcon'    => [ 'name' => 'falcon',    'fly' => true,  'class' => 'bird' ],
    'bat'       => [ 'name' => 'bat',       'fly' => true,  'class' => 'mammal' ],
];
 
$result = wp_list_sort( $animals, 'class' );
 
$result = wp_list_sort( $animals, 'name', 'DESC' );
 
$result = wp_list_sort( $animals, 'name', 'ASC', true );


发表评论

暂无评论,抢个沙发...

客服 工单