_rest_array_intersect_key_recursive

The timeline below displays how wordpress function _rest_array_intersect_key_recursive has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.5

/**
 * Recursively computes the intersection of arrays using keys for comparison.
 *
 * @since 5.3.0
 *
 * @param array $array1 The array with master keys to check.
 * @param array $array2 An array to compare keys against.
 * @return array An associative array containing all the entries of array1 which have keys
 *               that are present in all arguments.
 */
function _rest_array_intersect_key_recursive($array1, $array2)
{
    $array1 = array_intersect_key($array1, $array2);
    foreach ($array1 as $key => $value) {
        if (is_array($value) && is_array($array2[$key])) {
            $array1[$key] = _rest_array_intersect_key_recursive($value, $array2[$key]);
        }
    }
    return $array1;
}

WordPress Version: 5.3

/**
 * Recursively computes the intersection of arrays using keys for comparison.
 *
 * @param  array $array1 The array with master keys to check.
 * @param  array $array2 An array to compare keys against.
 *
 * @return array An associative array containing all the entries of array1 which have keys that are present in all arguments.
 */
function _rest_array_intersect_key_recursive($array1, $array2)
{
    $array1 = array_intersect_key($array1, $array2);
    foreach ($array1 as $key => $value) {
        if (is_array($value) && is_array($array2[$key])) {
            $array1[$key] = _rest_array_intersect_key_recursive($value, $array2[$key]);
        }
    }
    return $array1;
}