| 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 | } |