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

Filters a list of objects, based on a set of key => value arguments.


Description Description


Parameters Parameters

$list

(array) (Required) An array of objects to filter.

$args

(array) (Optional) An array of key => value arguments to match against each object.

Default value: array()

$operator

(string) (Optional) The logical operation to perform. 'AND' means all elements from the array must match. 'OR' means only one element needs to match. 'NOT' means no elements may match.

Default value: 'AND'


Top ↑

Return Return

(array) Array of found values.


Top ↑

Source Source

File: wp-includes/functions.php

function wp_list_filter( $list, $args = array(), $operator = 'AND' ) {
	if ( ! is_array( $list ) ) {
		return array();
	}

	$util = new WP_List_Util( $list );
	return $util->filter( $args, $operator );
}

Top ↑

Changelog Changelog

Changelog
Version Description
4.7.0 Uses WP_List_Util class.
3.1.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Felipe Elia

    Example of usage:

    $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' ] );
    // [
    //   [ 'name' => 'dog', ... ]
    //   [ 'name' => 'cat', ... ]
    //   [ 'name' => 'bat', ... ]
    // ]
    
    wp_list_filter( $animals, [ 'class' => 'mammal', 'fly' => true ] );
    // [
    //   [ 'name' => 'bat', ... ]
    // ]
    
    wp_list_filter( $animals, [ 'class' => 'mammal', 'fly' => true ], 'OR' );
    // [
    //   [ 'name' => 'dog', ... ]
    //   [ 'name' => 'cat', ... ]
    //   [ 'name' => 'falcon', ... ]
    //   [ 'name' => 'bat', ... ]
    // ]

You must log in before being able to contribute a note or feedback.