欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php中的常用数组函数(三)(获取数组交集的函数们 array_intersect()、array_intersect_key()、array_intersect_assoc()、array_intersect_uassoc()、array_intersect_ukey())

程序员文章站 2022-03-26 16:53:30
...
这5个获取交集的函数 有 5个对应的获取差集的函数。我是链接。

array_intersect($arr1, $arr2);

//获得数组同键值的交集


array_intersect_key($arr1, $arr2);

//获得数组同键名的交集


array_intersect_assoc(同上);

//获得数组同键名键值的交集


array_intersect_uassoc(同上,'自定义回调函数');

//用自定义的回调函数来获得数组同键名键值的交集


array_intersect_ukey(同上, 自定义回调函数);

//用自定义的回调函数来获得数据同键名的交集


 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 }