WP_List_Util::filter( array $args = array(), string $operator = 'AND' )
Filters the list, based on a set of key => value arguments.
Description
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
Version | Description |
---|---|
4.7.0 | Introduced. |