PHP判断一个数组是另一个数组子集的方法详解


Posted in PHP onJuly 31, 2017

本文实例讲述了PHP判断一个数组是另一个数组子集的方法。分享给大家供大家参考,具体如下:

前言

今天完成一个算法的过程中,有几个需求模块,其中就有判断$a数组是否是$b数组的子集,可能最近我写c比较多,直接就用for循环实现了,但是感觉代码量比较大,不够优雅!在qq群里集思广益了一下,发现很多php提供的系统功能函数都是可以供调用的,这里记录一下

需求

最少的时间复杂度判断$a数组是否是$b数组的子集

// 快速的判断$a数组是否是$b数组的子集
$a = array(135,138);
$b = array(135,138,137);

实现方法

这里介绍三种方法,思路其实是相同的,差别在于实现的代码上

for循环遍历

$flag = 1;
foreach ($a as $va) {
  if (in_array($va, $b)) {
    continue;
  }else {
    $flag = 0;
    break;
  }
}
if ($flag) {
  echo "Yes";
}else {
  echo "No";
}

array_diff的使用

PHP判断一个数组是另一个数组子集的方法详解

代码

$c = array_diff($a, $b);
print_r($c);
$flag = empty($c)?1 : 0;
if ($flag) {
  echo "Yes";
}else {
  echo "No";
}

array_intersect的使用

PHP判断一个数组是另一个数组子集的方法详解

代码

if ($a == array_intersect($a, $b)) {
  $flag = 1;
}else {
  $flag = 0;
}
if ($flag) {
  echo "Yes";
}else {
  echo "No";
}

后记

一个好的导师不仅可以教会我学习的方法,更可以教会我做人做事的方法,心怀感激,有担当

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP实现MySQL更新记录的代码
Jun 07 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
Aug 05 PHP
PHP 获取MySQL数据库里所有表的实现代码
Jul 13 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
May 16 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
Apr 02 PHP
php实现的树形结构数据存取类实例
Nov 29 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
Dec 18 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 PHP
PHP之多条件混合筛选功能的实现方法
Oct 09 PHP
PHP中TP5 上传文件的实例详解
Jul 31 #PHP
PHP 中TP5 Request 请求对象的实例详解
Jul 31 #PHP
PHP将数据导出Excel表中的实例(投机型)
Jul 31 #PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 #PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 #PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 #PHP
php简单实现单态设计模式的方法分析
Jul 28 #PHP
You might like
如何隐藏你的.php文件
2007/01/04 PHP
jquery ready函数源代码研究
2009/12/06 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
解决VUE中document.body.scrollTop为0的问题
2018/09/15 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
python获得图片base64编码示例
2014/01/16 Python
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
python中的随机函数小结
2018/01/27 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
Pycharm中如何关掉python console
2020/10/27 Python
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
运动会入场解说词300字
2014/01/25 职场文书
法律七进实施方案
2014/03/15 职场文书
社区平安建设方案
2014/05/25 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
村创先争优活动总结
2014/08/28 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
圆明园观后感
2015/06/03 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android