WordPress.org

Make WordPress Core

Ticket #16378: 16378.compat.diff

File 16378.compat.diff, 1.1 KB (added by johnjamesjacoby, 5 years ago)

Add array_intersect_key to compat.php

  • wp-includes/compat.php

     
    168168        } 
    169169        return $parts; 
    170170} 
     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 */ 
     178if ( !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}