PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重
来源:互联网 发布:scratch趣味编程100例 编辑:程序博客网 时间:2024/06/06 05:37
在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));
数组转换为字符串:
<?php$arr = array('Hello','World!','I','love','Shanghai!');echo implode(" ",$arr);?>
字符串转换为数组:
<?php
$str="1432532 ,4444";
$arr = explode(",",$str);
echo count($arr)."</br>";
print_r($arr);
?>
数组元素值去重
<?php$a=array("a"=>"red","b"=>"green","c"=>"red");print_r(array_unique($a)
);?>
针对有空格的字符串转换成无空格的字符串
<?php
$str="1432532 ,67878";
$arr = explode(",",$str);
//echo count($arr)."</br>";
$str_u='';
for($i=0;$i<count($arr);$i++)
{
$str_u .=trim($arr[$i]).',';
}
echo $str_u;
?>
- PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重
- PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重
- js取数组两个数组的交集|差集|并集|补集|去重
- js取数组两个数组的交集|差集|并集|补集|去重
- js取数组两个数组的交集|差集|并集|补集|去重
- Java求字符串数组交集 并集 差集 去重复并集
- java求两个数组的并集、交集、差集
- PHP求数组的差集和交集
- JAVA求字符串数组交集、并集和差集
- JAVA求字符串数组交集、并集和差集
- JAVA求字符串数组交集、并集和差集
- JAVA求字符串数组交集、并集和差集
- JAVA求字符串数组交集、并集和差集
- PHP对数组求交集,差集,并集示例
- ES6 操作数组的并集/交集/差集
- Linq 数据操作,两个数组求差、交集、并集
- 求两个数组的交集、并集和差集算法分析与实现
- 求两个数组的交集、并集和差集算法分析与实现
- HDU1247 Hat’s Words【Trie】
- 学校c#大作业在连接mysql数据库过程中遇到的坑们
- 使用远程线程来注入DLL
- 分页存储过程-利用select top和中间变量实现分页
- 本机突然不能访问虚拟机Linux中的项目了(问题解决)
- PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重
- Thinking in Java 第4章 控制执行流程 【Foreach 语句】
- Sublime text + Latex
- Android Studio 使用入门教程之常用配置
- 数据结构绪论
- Exchange 2010 Powershell新建会议室邮箱-设备邮箱 !
- Apache POI 第一讲之创建新工作簿及简单操作
- socket与http的区别
- opencv学习(4)——图像亮度、对比度调整