From 965dcf7bf98b16001becf875734811b247872ca0 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Thu, 25 Aug 2011 19:50:29 +0000 Subject: [PATCH] Properly handle nested arrays in wp_list_filter(). Props scribu, SergeyBiryukov. fixes #16137 git-svn-id: https://develop.svn.wordpress.org/trunk@18606 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/functions.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wp-includes/functions.php b/wp-includes/functions.php index 44962e118e..7d6340065c 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -3198,7 +3198,14 @@ function wp_list_filter( $list, $args = array(), $operator = 'AND' ) { $filtered = array(); foreach ( $list as $key => $obj ) { - $matched = count( array_intersect_assoc( (array) $obj, $args ) ); + $to_match = (array) $obj; + + $matched = 0; + foreach ( $args as $m_key => $m_value ) { + if ( $m_value == $to_match[ $m_key ] ) + $matched++; + } + if ( ( 'AND' == $operator && $matched == $count ) || ( 'OR' == $operator && $matched <= $count ) || ( 'NOT' == $operator && 0 == $matched ) ) {