php比对两个数组函数
摘要:两个数组的比对在日常编码过程中是最常用到的,稍微复杂点的业务需求都需要用到
array_diff_assoc
功能:函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键和值。
>>> $arr1=[1,2,3,4];
=> [
1,
2,
3,
4,
]
>>> $arr2=[3,4,5,6];
=> [
3,
4,
5,
6,
]
>>> array_diff_assoc($arr1,$arr2);
=> [
1,
2,
3,
4,
]
可以看到当键值一样,键名不一样的时候,也不会匹配到。
>>> $arr1=[1,2,3,4];
=> [
1,
2,
3,
4,
]
>>> $arr2=[5,6,3,4];
=> [
5,
6,
3,
4,
]
>>> array_diff_assoc($arr1,$arr2);
=> [
1,
2,
]
只有当键名和键值都一样的时候才会被排除,是求第一个数组和后面数组的差值。
array_intersect
功能:函数用于比较两个(或更多个)数组的值,并返回交集。
>>> $arr1;
=> [
1,
2,
3,
4,
]
>>> $arr2;
=> [
5,
6,
3,
4,
]
>>> array_intersect($arr1,$arr2);
=> [
2 => 3,
3 => 4,
]
>>> $arr1;
=> [
1,
2,
3,
4,
]
>>> $arr2 = [3,4,5,6];
=> [
3,
4,
5,
6,
]
>>> array_intersect($arr1,$arr2);
=> [
2 => 3,
3 => 4,
]
>>>
可以看到会返回第一个数组和第二个数组值相等的数组,保留第一个数组的键值。
array_diff
功能: 函数用于比较两个(或更多个)数组的值,并返回差集。
=> [
"one" => "one",
"two" => "two",
"three" => "three",
]
>>> $arr2;
=> [
"one1" => "one",
"two1" => "two",
"four" => "four",
"five" => "five",
]
>>> array_diff($arr1,$arr2);
=> [
"three" => "three",
]
>>>
这个函数和array_diff_assoc功能相似,但array_diff只比较值,键不同也不影响。也是求第一个数组与后面数组的差值。
拓展:
如果要求两个集合是否不相同,可以互相求下差值。
array_diff($arr1,$arr2)&&array_diff($arr2,$arr1)
如果对你有帮助,看完别忘了转发,收藏~~