public static function array_intersect_key_recursive() { $arrs = func_get_args(); $result = array_shift($arrs); foreach ($arrs as $array) { foreach ($result as $key => $v) { if (!array_key_exists($key, $array)) { unset($result[$key]); } elseif (is_array($v)) { $result[$key] = XARRAY::array_intersect_key_recursive($array[$key], $v); } } } return $result; }