protected function filterPushExpose($requested, $actual)
{
$requested = (array) $requested;
$actual = (array) $actual;
foreach ($requested as $requestedKey => $requestedValue) {
if ($requestedKey !== 0 && in_array($requestedKey, $actual)) {
continue;
}
if (is_array($requestedValue)) {
if (is_string($requestedKey) && isset($actual[$requestedKey])) {
$requested[$requestedKey] = $this->filterPushExpose($requestedValue, $actual[$requestedKey]);
continue;
} elseif (is_int($requestedKey)) {
$requested[$requestedKey] = $this->filterPushExpose($requestedValue, $actual);
continue;
}
} else {
if (in_array($requestedKey, $actual)) {
continue;
}
}
unset($requested[$requestedKey]);
}
return $requested;
}