好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php数组比较交集 php 数组比较

很多站长朋友们都不太清楚php数组比较交集,今天小编就来给大家整理php数组比较交集,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP两个数组的交集? 2、 PHP数组的几个操作,求并集,交集,差集,数组 3、 php 多个多维数组求交集 PHP两个数组的交集?

你这个搞得是不是太复杂了。请使用array_diff比较数组,返回不同,再计算交集。

PHP数组的几个操作,求并集,交集,差集,数组

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

在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 多个多维数组求交集

array_intersect

(PHP 4 >= 4.0.1, PHP 5)

array_intersect -- 计算数组的交集说明

array array_intersect ( array array1, array array2 [, array ...])

array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。

例子 1. array_intersect() 例子

<?php

$array1 = array ("a" => "green", "red", "blue");

$array2 = array ("b" => "green", "yellow", "red");

$result = array_intersect ($array1, $array2);

?>

这使得 $result 成为:

Array

(

[a] => green

[0] => red

)

注: 两个单元仅在 (string) $elem1 === (string) $elem2 时被认为是相同的。也就是说,当字符串的表达是一样的时候。

array_diff

(PHP 4 >= 4.0.1, PHP 5)

array_diff -- 计算数组的差集说明

array array_diff ( array array1, array array2 [, array ...])

array_diff() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。

例子 1. array_diff() 例子

<?php

$array1 = array ("a" => "green", "red", "blue", "red");

$array2 = array ("b" => "green", "yellow", "red");

$result = array_diff ($array1, $array2);

?>

这使得 $result 成为 array (1 => "blue");。在 $array1 中多次出现的值同样对待。

注: 两个单元仅在 (string) $elem1 === (string) $elem2 时被认为是相同的。也就是说,当字符串的表达是一样的时候。

注: 注意此函数仅检查多维数组中的一维。当然你可以用 array_diff($array1[0], $array2[0]); 检查更深的维度。

array_diff_assoc -- 带索引检查计算数组的差集

说明

array array_diff_assoc ( array array1, array array2 [, array ...])

array_diff_assoc() 返回一个 array,返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。

例子 1. array_diff_assoc() 例子

<?php

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

$array2 = array ("a" => "green", "yellow", "red");

$result = array_diff_assoc($array1, $array2);

?>

上面的例子中可以看到键值对 "a" => "green" 在两个数组中都有,因此不在本函数的输出中。与此不同,键值对 0 => "red" 出现在输出中是因为第二个参数中的 "red" 的键名是 1。

键值对 key => value 中的两个值仅在 (string) $elem1 === (string) $elem2 时被认为相等。也就是说使用了严格检查,字符串的表达必须相同。

关于php数组比较交集的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php数组比较交集 php 数组比较的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did197009
更新时间:2023-04-26   阅读:29次

上一篇: php用pdf导入 php文件如何导入

下一篇:php高级项目实战 php高级手册

相关资讯

最新资料更新

  • 1.php登录注册论文 php写注册登录
  • 2.php怎么使用css php怎么使用数据库锁
  • 3.php翻译sdk php翻译成中文是什么意思
  • 4.php每个小时执行 php定时执行每天执行一次
  • 5.php河内塔问题 河内塔算法
  • 6.PHP没有前景吗 php现在怎么样
  • 7.phpajax日历 php如何生成一年的日历
  • 8.form居中显示php form居中显示
  • 9.bashphp的简单介绍
  • 10.php设备判断在线 php判断用户在线状态
  • 11.phpml源码安装 下载了个php源码包,怎么使用
  • 12.mac安装php扩展 mac系统安装php环境
  • 13.数组对象转为数组php 对象数组转string
  • 14.php订单管理功能 php订单提醒功能
  • 15.phpu=13647的简单介绍
  • 16.php循环处理速度 phpforeach循环
  • 17.php短信android Php短信对接视频
  • 18.phpword读写 php读写word 文档
  • 19.php生成缓存图片 php缓存机制有哪些
  • 20.php在线做点兼职 php在线做点兼职是真的吗

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]