| | 171 | |
| | 172 | /** |
| | 173 | * PHP 4 compat version of array_intersect_key() which was introduced |
| | 174 | * in PHP 5.0.2. This version requires at least PHP 4.0.0. |
| | 175 | * |
| | 176 | * @since WordPress 3.1 |
| | 177 | */ |
| | 178 | if ( !function_exists( 'array_intersect_key' ) ) { |
| | 179 | function array_intersect_key() { |
| | 180 | $args = func_get_args(); |
| | 181 | $array_count = count( $args ); |
| | 182 | |
| | 183 | if ( $array_count < 2 ) { |
| | 184 | user_error( 'Wrong parameter count for array_intersect_key()', E_USER_WARNING ); |
| | 185 | return; |
| | 186 | } |
| | 187 | |
| | 188 | // Check arrays |
| | 189 | for ( $i = $array_count; $i--; ) { |
| | 190 | if ( !is_array( $args[$i] ) ) { |
| | 191 | user_error( 'array_intersect_key() Argument #' . ( $i + 1 ) . ' is not an array', E_USER_WARNING ); |
| | 192 | return; |
| | 193 | } |
| | 194 | } |
| | 195 | |
| | 196 | // Intersect keys |
| | 197 | $arg_keys = array_map( 'array_keys', $args ); |
| | 198 | $result_keys = call_user_func_array( 'array_intersect', $arg_keys ); |
| | 199 | |
| | 200 | // Build return array |
| | 201 | $result = array( ); |
| | 202 | foreach ( $result_keys as $key ) |
| | 203 | $result[$key] = $args[0][$key]; |
| | 204 | |
| | 205 | return $result; |
| | 206 | } |
| | 207 | |
| | 208 | } |