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
Version | Description |
---|---|
WP-4.7.0 | Introduced. |