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