WP_List_Util::filter( array $args = array(), string $operator = 'AND' )

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


Parameters

$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'


Return

(array) Array of found values.


Source

File: wp-includes/class-wp-list-util.php

	public function filter( $args = array(), $operator = 'AND' ) {
		if ( empty( $args ) ) {
			return $this->output;
		}

		$operator = strtoupper( $operator );

		if ( ! in_array( $operator, array( 'AND', 'OR', 'NOT' ), true ) ) {
			return array();
		}

		$count = count( $args );
		$filtered = array();

		foreach ( $this->output as $key => $obj ) {
			$to_match = (array) $obj;

			$matched = 0;
			foreach ( $args as $m_key => $m_value ) {
				if ( array_key_exists( $m_key, $to_match ) && $m_value == $to_match[ $m_key ] ) {
					$matched++;
				}
			}

			if (
				( 'AND' == $operator && $matched == $count ) ||
				( 'OR' == $operator && $matched > 0 ) ||
				( 'NOT' == $operator && 0 == $matched )
			) {
				$filtered[$key] = $obj;
			}
		}

		$this->output = $filtered;

		return $this->output;
	}

Changelog

Changelog
Version Description
WP-4.7.0 Introduced.