WordPress函数:wp_list_filter 和 wp_filter_object_list 过滤数组,筛选元素

06月/20日/WordPress/浏览 169

WordPress提供了方便函数 wp_list_filter 。其作用就是从数组中筛选中符合要求的元素。


函数原型:


wp_list_filter( array $list, array $args = array(), string $operator = 'AND' )


$list


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


$args


(array) (可选的) 用来进行过滤的条件,类似['filed1' => 'value1', 'filed2' => 'value2']


默认: array()


$operator


(string) (可选的) 支持'AND' ‘OR’或 ‘NOT’ 


默认: 'AND'


使用举例:


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


如果,只想要筛选出的数据的某个字段,该怎么做呢?使用 wp_list_pluck 函数 即可。


或者,不用 wp_list_filter , 而是使用 wp_filter_object_list。wp_filter_object_list 比 wp_list_filter 多出一个参数,即指明想要的字段。


函数原型:


wp_filter_object_list( array $list, array $args = array(), string $operator = 'and', bool|string $field = false )


发表评论

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

客服 工单