(PECL ds >= 1.0.0)
Ds\Map::intersect — Создаёт новую коллекцию пар, созданную пересечением с другой коллекцией пар
   Создаёт новую коллекцию пар из текущей, содержащую элементы, ключи которых
   присутствуют как в текущей коллекции, так и в переданной в параметре
   map.
   Другими словами, возвращает копию текущей коллекции, из которой удалены все
   элементы, ключи которых отсутствуют в коллекции из map.
  
   A ∩ B = {x : x ∈ A ∧ x ∈ B}
  
Замечание:
Значения берутся из текущей коллекции пар.
mapНовая коллекция типа Map.
   Пересечение текущей коллекции и переданной в map.
  
Пример #1 Пример использования Ds\Map::intersect()
<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);
var_dump($a->intersect($b));
?>Вывод приведённого примера будет похож на:
object(Ds\Map)#3 (2) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}
