(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)
}
}