(PECL ds >= 1.0.0)
Ds\Set::xor — Создаёт новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно
   Создаёт новый набор из значений, которые есть в текущем наборе, либо в наборе заданном
   в set, но не в обоих одновременно.
  
   A ⊖ B = {x : x ∈ (A \ B) ∪ (B \ A)}
  
setВторой набор.
   Новый набор из значений, которые есть в текущем наборе, либо в наборе заданном
   в set, но не в обоих одновременно.
  
Пример #1 Пример использования Ds\Set::xor()
<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);
var_dump($a->xor($b));
?>Вывод приведённого примера будет похож на:
object(Ds\Set)#3 (4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(4)
  [3]=>
  int(5)
}
