這5個獲取交集的函數 有 5個對應的獲取差集的函數。我是鏈接。
//獲得數組同鍵值的交集
//獲得數組同鍵名的交集
//獲得數組同鍵名鍵值的交集
//用自定義的回調函數來獲得數組同鍵名鍵值的交集
//用自定義的回調函數來獲得數據同鍵名的交集
1 $arr1 = array('r' => 'red','u' => 'blue', 'g' => 'green', 'b' => 'black');
2 $arr2 = array('r' => 'red', 'b' => 'blue');
3 /***********array_intersect(計算數組同鍵值的交集)*****************/
4 $arrIntersect = array_intersect($arr1, $arr2);
5 var_dump($arrIntersect);//=>array(2) { ["r"]=> string(3) "red" ["u"]=> string(4) "blue" }
6
7 /***********array_intersect_key(計算數組同鍵名的交集)*****************/
8 $arrIntersectKey = array_intersect_key($arr1, $arr2);
9 var_dump($arrIntersectKey);//=>array(2) { ["r"]=> string(3) "red" ["b"]=> string(5) "black" }
10
11 /***********array_intersect_assoc(計算數組同鍵名同鍵值的交集)*****************/
12 $arrIntersectAssoc = array_intersect_assoc($arr1, $arr2);
13 var_dump($arrIntersectAssoc);//=>array(1) { ["r"]=> string(3) "red" }
14
15 /***********array_intersect_uassoc(用自定義的回調函數來計算數組同鍵名同鍵值的交集)*****************/
16 $arrIntersectUassoc = array_intersect_uassoc($arr1, $arr2, 'arr_intersect_uassoc_func');
17 var_dump($arrIntersectUassoc);//=>array(1) { ["r"]=> string(3) "red" }
18
19 function arr_intersect_uassoc_func($a, $b) {
20 if ($a === $b)
21 return 0;
22 elseif ($a > $b)
23 return 1;
24 else
25 return -1;
26 }
27
28 /***********array_intersect_ukey(用自定義的回調函數來計算數組同鍵名的交集)*****************/
29 $arrIntersectUkey = array_intersect_ukey($arr1, $arr2, 'arr_intersect_ukey_func');
30 var_dump($arrIntersectUkey);//=>array(2) { ["r"]=> string(3) "red" ["b"]=> string(5) "black" }
31
32 function arr_intersect_ukey_func($k1, $k2) {
33 if ($k1 == $k2)
34 return 0;
35 elseif ($k1 > $k2)
36 return 1;
37 else
38 return -1;
39 }