计算数组的差集
1.1 array_diff()
//arry_diff(),比较的是数组成员的值
//该函数只能对多维数组的第一维进行差值比较。
//返回值是一个数组,返回第一个参数数组有但是后面的参数数组没有的差值
$a = [1, 2, 3, 4, 5, 6, 7];
$b = [1, 2];
$c = [5, 6];
var_dump(array_diff($a, $b, $c));
1.2 arry_diff_key()
//与arry_diff()不同的是比较的是键名
$a = ['name' => '张三', 'age' => 25, 'xingbie' => '男'];
$b = ['age' => 28];
echo '<hr>';
var_dump(array_diff_key($a, $b));
1.3 array_diff_ukey()
//与arry_diff_key()不同的是用用户提供的回调函数计算键名,可以对键名进行一些运算后再求数组差值
function ukey($a1,$b1)
{
return ($a1.'1') <=> $b1;
}
$a = ['name' => '张三', 'age' => 25, 'xingbie' => '男'];
$b = ['name1' => '张三','age1' =>25];
echo '<hr>';
var_dump(array_diff_ukey($a, $b,'ukey'));
1.4 array_diff_assoc()
//array_diff_assoc(),既比较键名也比较键值,要求键值对完全相同的才进行减去
//相当于 if(键名比较 = false || 键值比较 = false) return 数组成员;
$a = ['name' => '张三', 'age' => 25, 'femail' => '女'];
$b = ['name' => '李四', 'ages' => 25, 'femail' => '女'];
echo '<hr>';
var_dump(array_diff_assoc($a, $b));
1.5 array_diff_uassoc()
//与array_diff_assoc()不同的是用用户提供的回调函数计算键名,可以对键名进行一些运算后再求数组差值
$a = ['sname' => '张三', 'sage' => 25, 'sfemail' => '女'];
$b = ['name' => '张三', 'femail'=>'女'];
function num($a1,$b1)
{
return $a1 <=> ('s'.$b1);
}
echo '<hr>';
var_dump(array_diff_uassoc($a, $b,'num'));
计算数组的交集
2.1 array_intersect()
//用于比较两个(或更多个)数组的键值,并返回交集。
//返回的是第一个参数数组中与其他参数数组共有的成员。
$a = [1, 2, 3, 4, 5, 6, 7];
$b = [1, 2];
$c = [1, 2];
var_dump(array_intersect($a, $b, $c));
2.2 array_intersect_key()
//与array_intersect()不同的是比较的是键名
$a = ['name' => '张三', 'age' => 25, 'xingbie' => '男'];
$b = ['age' => 28];
echo '<hr>';
var_dump(array_intersect_key($a, $b));
2.3 array_intersect_ukey()
//与arry_intersect_key()不同的是用用户提供的回调函数计算键名,可以对键名进行一些运算后再求数组交集
function ukey($a1,$b1)
{
return ($a1.'1') <=> $b1;
}
$a = ['name' => '张三', 'age' => 25, 'xingbie' => '男'];
$b = ['name1' => '张三','age1' =>25];
echo '<hr>';
var_dump(array_intersect_ukey($a, $b,'ukey'));
2.4 array_intersect_assoc()
//array_intersect_assoc(),既比较键名也比较键值,要求键值对完全相同的才算符合交集条件
$a = ['name' => '张三', 'age' => 25, 'femail' => '女'];
$b = ['name' => '李四', 'ages' => 25, 'femail' => '女'];
echo '<hr>';
var_dump(array_intersect_assoc($a, $b));
2.5 array_intersect_uassoc()
//与array_intersect_assoc()不同的是用用户提供的回调函数计算键名,可以对键名进行一些运算后再求数组交集
$a = ['sname' => '张三', 'sage' => 25, 'sfemail' => '女'];
$b = ['name' => '张三', 'femail'=>'女'];
function num($a1,$b1)
{
return $a1 <=> ('s'.$b1);
}
echo '<hr>';
var_dump(array_intersect_uassoc($a, $b,'num'));
自己查手册学习感悟:1、不知道应用场景,很难记得住。2、理解不够透彻,还是听老师的课更容易掌握。