PHP - Ds Map::xor() 函式



PHP 的 Ds\Map::xor() 函式用於透過使用當前例項和另一個對映中的鍵來建立一個新的對映,但不是兩者都使用。

這意味著,如果兩個對映中的值相等,則此函式返回的對映將為空 ([])。例如,map1 = ([1, 2, 3]),map2 = ([1, 2, 3]),則 map1->xor(map2) = ([])。

以下是計算兩個對映的 XOR 的公式:

A XOR B = (A Union B) - (A Intersection B)

這裡,A 被認為是第一個對映,B 被認為是第二個對映。

語法

以下是 PHP Ds\Map::xor() 函式的語法:

public Ds\Map Ds\Map::xor( Ds\Map $map )

引數

以下是此函式的引數:

  • map - 另一個對映包含一組值。

返回值

此函式返回兩個對映的 XOR,即異或。

示例 1

以下是 PHP Ds\Map::xor() 函式的基本示例:

<?php  
   $map1 = new \Ds\Map([1, 2, 3]);  
   $map2 = new \Ds\Map([2, 3, 4, 5]);
   echo "The map1 elements are: ";
   foreach($map1 as $key=>$value){
	   echo $value." ";
   }
   echo "\nThe map2 elements are: ";
   foreach($map2 as $key=>$value){
	   echo $value." ";
   }
   echo("\nThe xor of both map: \n");
   #using xor() method  
   print_r ($map1->xor($map2));
?>

輸出

以上程式產生以下輸出:

The map1 elements are: 1 2 3
The map2 elements are: 2 3 4 5
The xor of both map:
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 3
            [value] => 5
        )

)

示例 2

以下是 PHP Ds\Map::xor() 函式的另一個示例。我們使用此方法來檢索一個新對映,該對映包含此對映 (["Hello", "Tutorials", "Point", "India"]) 和另一個對映 (["Tutorials", "Point", "India"]) 中的值,但不是兩者都包含的值。

<?php  
   $map1 = new \Ds\Map(["Hello", "Tutorials", "Point", "India"]);  
   $map2 = new \Ds\Map(["Tutorials", "Point", "India"]);
   echo "The map1 elements are: \n";
   print_r($map1);
   echo "The map2 elements are: \n";
   print_r($map2);
   echo("The xor of both map: \n");
   #using xor() method  
   var_dump($map1->xor($map2));
?7gt;

輸出

執行上述程式後,它將顯示以下輸出:

The map1 elements are:
Ds\Map Object
(
    [0] => Hello
    [1] => Tutorials
    [2] => Point
    [3] => India
)
The map2 elements are:
Ds\Map Object
(
    [0] => Tutorials
    [1] => Point
    [2] => India
)
The xor of both map:
object(Ds\Map)#3 (1) {
  [0]=>
  string(5) "Hello"
}

示例 3

如果兩個對映中的值完全相同,則 XOR() 函式將返回兩個對映的 XOR 作為新的空對映 ([])

<?php  
   $map1 = new \Ds\Map(['a', 'e', 'i', 'o', 'u']);  
   $map2 = new \Ds\Map(['a', 'e', 'i', 'o', 'u']);
   echo "The map1 elements are: \n";
   print_r($map1);
   echo "The map2 elements are: \n";
   print_r($map2);
   echo("The xor of both map: \n");
   #using xor() method  
   var_dump($map1->xor($map2));
?>

輸出

執行上述程式後,它將生成以下輸出:

The map1 elements are:
Ds\Map Object
(
    [0] => a
    [1] => e
    [2] => i
    [3] => o
    [4] => u
)
The map2 elements are:
Ds\Map Object
(
    [0] => a
    [1] => e
    [2] => i
    [3] => o
    [4] => u
)
The xor of both map:
object(Ds\Map)#3 (0) {
}
廣告