计算数组的差集

1.1 array_diff()

  1. //arry_diff(),比较的是数组成员的值
  2. //该函数只能对多维数组的第一维进行差值比较。
  3. //返回值是一个数组,返回第一个参数数组有但是后面的参数数组没有的差值
  4. $a = [1, 2, 3, 4, 5, 6, 7];
  5. $b = [1, 2];
  6. $c = [5, 6];
  7. var_dump(array_diff($a, $b, $c));

1.2 arry_diff_key()

  1. //与arry_diff()不同的是比较的是键名
  2. $a = ['name' => '张三', 'age' => 25, 'xingbie' => '男'];
  3. $b = ['age' => 28];
  4. echo '<hr>';
  5. var_dump(array_diff_key($a, $b));

1.3 array_diff_ukey()

  1. //与arry_diff_key()不同的是用用户提供的回调函数计算键名,可以对键名进行一些运算后再求数组差值
  2. function ukey($a1,$b1)
  3. {
  4. return ($a1.'1') <=> $b1;
  5. }
  6. $a = ['name' => '张三', 'age' => 25, 'xingbie' => '男'];
  7. $b = ['name1' => '张三','age1' =>25];
  8. echo '<hr>';
  9. var_dump(array_diff_ukey($a, $b,'ukey'));

1.4 array_diff_assoc()

  1. //array_diff_assoc(),既比较键名也比较键值,要求键值对完全相同的才进行减去
  2. //相当于 if(键名比较 = false || 键值比较 = false) return 数组成员;
  3. $a = ['name' => '张三', 'age' => 25, 'femail' => '女'];
  4. $b = ['name' => '李四', 'ages' => 25, 'femail' => '女'];
  5. echo '<hr>';
  6. var_dump(array_diff_assoc($a, $b));

1.5 array_diff_uassoc()

  1. //与array_diff_assoc()不同的是用用户提供的回调函数计算键名,可以对键名进行一些运算后再求数组差值
  2. $a = ['sname' => '张三', 'sage' => 25, 'sfemail' => '女'];
  3. $b = ['name' => '张三', 'femail'=>'女'];
  4. function num($a1,$b1)
  5. {
  6. return $a1 <=> ('s'.$b1);
  7. }
  8. echo '<hr>';
  9. var_dump(array_diff_uassoc($a, $b,'num'));

计算数组的交集

2.1 array_intersect()

  1. //用于比较两个(或更多个)数组的键值,并返回交集。
  2. //返回的是第一个参数数组中与其他参数数组共有的成员。
  3. $a = [1, 2, 3, 4, 5, 6, 7];
  4. $b = [1, 2];
  5. $c = [1, 2];
  6. var_dump(array_intersect($a, $b, $c));

2.2 array_intersect_key()

  1. //与array_intersect()不同的是比较的是键名
  2. $a = ['name' => '张三', 'age' => 25, 'xingbie' => '男'];
  3. $b = ['age' => 28];
  4. echo '<hr>';
  5. var_dump(array_intersect_key($a, $b));

2.3 array_intersect_ukey()

  1. //与arry_intersect_key()不同的是用用户提供的回调函数计算键名,可以对键名进行一些运算后再求数组交集
  2. function ukey($a1,$b1)
  3. {
  4. return ($a1.'1') <=> $b1;
  5. }
  6. $a = ['name' => '张三', 'age' => 25, 'xingbie' => '男'];
  7. $b = ['name1' => '张三','age1' =>25];
  8. echo '<hr>';
  9. var_dump(array_intersect_ukey($a, $b,'ukey'));

2.4 array_intersect_assoc()

  1. //array_intersect_assoc(),既比较键名也比较键值,要求键值对完全相同的才算符合交集条件
  2. $a = ['name' => '张三', 'age' => 25, 'femail' => '女'];
  3. $b = ['name' => '李四', 'ages' => 25, 'femail' => '女'];
  4. echo '<hr>';
  5. var_dump(array_intersect_assoc($a, $b));

2.5 array_intersect_uassoc()

  1. //与array_intersect_assoc()不同的是用用户提供的回调函数计算键名,可以对键名进行一些运算后再求数组交集
  2. $a = ['sname' => '张三', 'sage' => 25, 'sfemail' => '女'];
  3. $b = ['name' => '张三', 'femail'=>'女'];
  4. function num($a1,$b1)
  5. {
  6. return $a1 <=> ('s'.$b1);
  7. }
  8. echo '<hr>';
  9. var_dump(array_intersect_uassoc($a, $b,'num'));

自己查手册学习感悟:1、不知道应用场景,很难记得住。2、理解不够透彻,还是听老师的课更容易掌握。

更多相关文章

  1. 0126-数据类型的转换与检测技术,变量与常用声明及使用
  2. 数据类型的转换、变量与常量声明和使用
  3. php常用数组函数以及数组的交集,差集,并集
  4. 数组的排序, 数组的合并, 数组成员的统计
  5. 柔性数组
  6. 剑指offer(一):找出数组中重复的数字
  7. 《PHP环境搭建-基础语法及数据类型》
  8. C语言数组(下)
  9. php数据类型

随机推荐

  1. 设置边距更改时,ValueAnimator滞后
  2. Android系统启动流程 -- android
  3. Android 通过Volley 模拟登录教务系统 出
  4. Volley使用指南第一回(来自developer.andr
  5. 以编程方式将位置模式更改为高精度Androi
  6. 理解Android的本地Service和跨进程Servic
  7. Android小项目之六 apk下载
  8. 尝试查看所有XML文件的图形布局时出现Sta
  9. 最近一年做Android项目过程中,对其的一些
  10. listview中的Android listview适配器(jso