public function getMatchingIds()
{
if (0 === count($this->arrChildFilters)) {
return array();
}
$ids = null;
foreach ($this->arrChildFilters as $objChildFilter) {
$matchingIds = $objChildFilter->getMatchingIds();
if (array() === $matchingIds) {
// Empty array, no items allowed by this rule, break out.
return array();
}
// If null => all items allowed by this rule => ignore it.
if (null === $matchingIds) {
continue;
}
if (null === $ids) {
$ids = $matchingIds;
continue;
}
$ids = array_intersect($ids, $matchingIds);
}
return is_array($ids) ? array_values($ids) : null;
}