(PHP 5 >= 5.3.6)
SplObjectStorage::removeAllExcept — Удаляет из текущего контейнера все объекты, которых нет в другом контейнере
Удаляет из текущего контейнера все объекты, которых нет в другом контейнере.
storage
Контейнер содержащий элементы, которые должны остаться в текущем контейнере.
Эта функция не возвращает значения после выполнения.
Пример #1 Пример использования SplObjectStorage::removeAllExcept()
<?php
$a = (object) 'a';
$b = (object) 'b';
$c = (object) 'c';
$foo = new SplObjectStorage;
$foo->attach($a);
$foo->attach($b);
$bar = new SplObjectStorage;
$bar->attach($b);
$bar->attach($c);
$foo->removeAllExcept($bar);
var_dump($foo->contains($a));
var_dump($foo->contains($b));
?>
Результатом выполнения данного примера будет что-то подобное:
bool(false) bool(true)