in src/keyset/select.php [151:175]
function intersect<Tv as arraykey>(
Traversable<Tv> $first,
Traversable<Tv> $second,
Container<Tv> ...$rest
)[]: keyset<Tv> {
if (!$first || !$second) {
return keyset[];
}
$intersection = keyset($first);
$rest[] = $second;
foreach ($rest as $traversable) {
$next_intersection = keyset[];
$keyed_traversable = keyset($traversable);
foreach ($intersection as $value) {
if (C\contains_key($keyed_traversable, $value)) {
$next_intersection[] = $value;
}
}
if (!$next_intersection) {
return keyset[];
}
$intersection = $next_intersection;
}
return $intersection;
}