(PHP 5 >= 5.3.6, PHP 7, PHP 8)
SplObjectStorage::removeAllExcept — Removes all objects except for those contained in another storage from the current storage
Removes all objects except for those contained in another storage from the current storage.
storage
The storage containing the elements to retain in the current storage.
Returns the number of removed objects.
Example #1 SplObjectStorage::removeAllExcept() example
<?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));
?>
The above example will output something similar to:
bool(false) bool(true)