php 二进制之间取并集,PHP求并集,交集,差集

PHP求并集,交集,差集

一、总结

一句话总结:在php中如果我想要对两个数组进行如并集、交集和差集操作,我们可直接使用php自带的函数来操作如array_merge(),array_intersect(),array_diff().

array_merge() array_intersect() array_diff()

1、php中如何求并集?

array_merge() +

计算数组的合并 array_merge与“+”的区别

array_merge() 函数把两个或多个数组合并为一个数组。

如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的),如果数组是数字索引的,则键名会以连续方式重新索引。

注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引.代码如下:

$a = array(1 => 'a', 'b', 'c');

$b = array(1 => 'aa', 2, 'c');

$union = array_merge($a, $b);

$plus = $a + $b;

print_r($union);

print_r($plus);

//结果依次为:

Array

{

[0]=> a

[1]=> b

[2]=> c

[3]=> aa

[4]=> 2

[5]=> c

}

Array

(

[1] => a

[2] => b

[3] => c

)

要合并的两个数组中有相同的字符串键的时候,使用array_merge()会覆盖掉原来的值,而使用“+”合并数组则会和用“+”号合并数组相同数字键一样把最先出现的值作为最终结果返回,如下例:

$a2 = array('str' => 'a', 'b', 'c');

$b2 = array('str' => 'aa', 2, 'c');

$union2 = array_merge($a2, $b2);

$plus2 = $a2 + $b2;

print_r($union2);

print_r($plus2);

//结果依次为:

Array

(

[str] => aa

[0] => b

[1] => c

[2] => 2

[3] => c

)

Array

(

[str] => a

[0] => b

[1] => c

)

注:如果想用array_merge合并两个数组,返回结果可能还会有相同的元素,这时候可以用array_unique()把相同的元素去掉

2、php合并 array_merge与“+”的区别是什么?

+ 合并索引

array_merge() 函数把两个或多个数组合并为一个数组。

如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的),如果数组是数字索引的,则键名会以连续方式重新索引。

注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引.代码如下:

$a = array(1 => 'a', 'b', 'c');

$b = array(1 => 'aa', 2, 'c');

$union = array_merge($a, $b);

$plus = $a + $b;

print_r($union);

print_r($plus);

//结果依次为:

Array

{

[0]=> a

[1]=> b

[2]=> c

[3]=> aa

[4]=> 2

[5]=> c

}

Array

(

[1] => a

[2] => b

[3] => c

)

要合并的两个数组中有相同的字符串键的时候,使用array_merge()会覆盖掉原来的值,而使用“+”合并数组则会和用“+”号合并数组相同数字键一样把最先出现的值作为最终结果返回,如下例:

$a2 = array('str' => 'a', 'b', 'c');

$b2 = array('str' => 'aa', 2, 'c');

$union2 = array_merge($a2, $b2);

$plus2 = $a2 + $b2;

print_r($union2);

print_r($plus2);

//结果依次为:

Array

(

[str] => aa

[0] => b

[1] => c

[2] => 2

[3] => c

)

Array

(

[str] => a

[0] => b

[1] => c

)

注:如果想用array_merge合并两个数组,返回结果可能还会有相同的元素,这时候可以用array_unique()把相同的元素去掉

3、php中如何求交集?

array_intersect()

array_intersect() 函数返回两个或多个数组的交集数组,结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变,注释:仅有值用于比较,代码如下:

$a = array('jpg','png','gif','bmp');

$b = array('JPG','txt','docx','bmp');

$intersection = array_intersect($a, $b);

还可以通过函数,获取自己想要的(比如元素不区分大小写),代码如下:

$intersection2 = array_intersect(array_map('strtolower',$a), array_map('strtolower',$b));

print_r($intersection);

print_r($intersection2);

//结果依次为:

Array

(

[3] => bmp

)

Array (

[0] => jpg

[3] => bmp

)

4、php中如何求差集?

array_diff()

计算数组的差集,代码如下:

$old = array('jpg','png','gif','bmp');

$new = array('JPG','txt','docx','bmp');

$difference = array_diff($old, $new);

注:返回结果的元素包含$old的元素,不包括$new的元素

print_r($difference);

结果为:

Array

(

[0] => jpg

[1] => png

[2] => gif

)

也可以用函数先进行处理,再计算差集

array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值,在返回的数组中,键名保持不变。

语法:array_diff(array1,array2,array3...)

代码如下:

$difference = array_diff(array_map('strtolower',$old),

array_map('strtolower',$new));

二、PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重

参考:PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重 - shao.bing的专栏 - CSDN博客

https://blog.csdn.net/shaobingj126/article/details/51814726

在php中如果我想要对两个数组进行如并集、交集和差集操作,我们可直接使用php自带的函数来操作如array_merge(),array_intersect(),array_diff().

计算数组的合并 array_merge与“+”的区别

array_merge() 函数把两个或多个数组合并为一个数组。

如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的),如果数组是数字索引的,则键名会以连续方式重新索引。

注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引.代码如下:

$a=array(1 =>'a','b','c');

$b=array(1 =>'aa', 2,'c');

$union=array_merge($a,$b);

$plus=$a+$b;

print_r($union);

print_r($plus);

//结果依次为:

Array

{

[0]=> a

[1]=> b

[2]=> c

[3]=> aa

[4]=> 2

[5]=> c

}

Array

(

[1] => a

[2] => b

[3] => c

)

要合并的两个数组中有相同的字符串键的时候,使用array_merge()会覆盖掉原来的值,而使用“+”合并数组则会和用“+”号合并数组相同数字键一样把最先出现的值作为最终结果返回,如下例:

$a2=array('str'=>'a','b','c');

$b2=array('str'=>'aa', 2,'c');

$union2=array_merge($a2,$b2);

$plus2=$a2+$b2;

print_r($union2);

print_r($plus2);

//结果依次为:

Array

(

[str] => aa

[0] => b

[1] => c

[2] => 2

[3] => c

)

Array

(

[str] => a

[0] => b

[1] => c

)

注:如果想用array_merge合并两个数组,返回结果可能还会有相同的元素,这时候可以用array_unique()把相同的元素去掉

计算数组的交集

array_intersect() 函数返回两个或多个数组的交集数组,结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变,注释:仅有值用于比较,代码如下:

$a=array('jpg','png','gif','bmp');

$b=array('JPG','txt','docx','bmp');

$intersection=array_intersect($a,$b);

还可以通过函数,获取自己想要的(比如元素不区分大小写),代码如下:

$intersection2=array_intersect(array_map('strtolower',$a),array_map('strtolower',$b));

print_r($intersection);

print_r($intersection2);

//结果依次为:

Array

(

[3] => bmp

)

Array (

[0] => jpg

[3] => bmp

)

计算数组的差集,代码如下:

$old=array('jpg','png','gif','bmp');

$new=array('JPG','txt','docx','bmp');

$difference=array_diff($old,$new);

注:返回结果的元素包含$old的元素,不包括$new的元素

print_r($difference);

结果为:

Array

(

[0] => jpg

[1] => png

[2] => gif

)

也可以用函数先进行处理,再计算差集

array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值,在返回的数组中,键名保持不变。

语法:array_diff(array1,array2,array3...)

代码如下:

$difference=array_diff(array_map('strtolower',$old),

array_map('strtolower',$new));

数组转换为字符串:

$arr = array('Hello','World!','I','love','Shanghai!');

echo implode(" ",$arr);

?>

字符串转换为数组:

$str="1432532 ,4444";

$arr = explode(",",$str);

echo count($arr)."";

print_r($arr);

?>

数组元素值去重

$a=array("a"=>"red","b"=>"green","c"=>"red");

print_r(array_unique($a));

?>

针对有空格的字符串转换成无空格的字符串

$str="1432532 ,67878";

$arr = explode(",",$str);

//echo count($arr)."";

$str_u='';

for($i=0;$i

{

$str_u .=trim($arr[$i]).',';

}

echo $str_u;

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值