(PECL ds >= 1.0.0)
Ds\Map::xor β Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΏΠ°Ρ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, Π½ΠΎ Π½Π΅ Π² ΠΎΠ±Π΅ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ
Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΏΠ°Ρ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠ»ΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ
Π΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ,
Π»ΠΈΠ±ΠΎ Π² ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ Π² map, Π½ΠΎ Π½Π΅ Π² ΠΎΠ±Π΅ΠΈΡ
ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
A β B = {x : x β (A \ B) βͺ (B \ A)}
mapΠΡΠΎΡΠ°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΏΠ°Ρ.
ΠΠΎΠ²Π°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΏΠ°Ρ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠ»ΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ
Π΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ,
Π»ΠΈΠ±ΠΎ Π² ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ Π² map, Π½ΠΎ Π½Π΅ Π² ΠΎΠ±Π΅ΠΈΡ
ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ds\Map::xor()
<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);
print_r($a->xor($b));
?>ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
Ds\Map Object
(
[0] => Ds\Pair Object
(
[key] => a
[value] => 1
)
[1] => Ds\Pair Object
(
[key] => d
[value] => 6
)
)