function AbstractCollection::diff
Parameters
CollectionInterface<T> $other The collection to check for divergent: items.
Return value
CollectionInterface<T>
Throws
CollectionMismatchException if the compared collections are of differing types.
Overrides CollectionInterface::diff
File
-
vendor/
ramsey/ collection/ src/ AbstractCollection.php, line 260
Class
- AbstractCollection
- This class provides a basic implementation of `CollectionInterface`, to minimize the effort required to implement this interface
Namespace
Ramsey\CollectionCode
public function diff(CollectionInterface $other) : CollectionInterface {
$this->compareCollectionTypes($other);
$diffAtoB = array_udiff($this->data, $other->toArray(), $this->getComparator());
$diffBtoA = array_udiff($other->toArray(), $this->data, $this->getComparator());
/** @var array<array-key, T> $diff */
$diff = array_merge($diffAtoB, $diffBtoA);
$collection = clone $this;
$collection->data = $diff;
return $collection;
}