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 for 循环语句使用方法详细说明
May 09 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
May 24 PHP
PHP调用Webservice实例代码
Jul 29 PHP
PHP下判断网址是否有效的代码
Oct 08 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
Jul 07 PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
codeigniter显示所有脚本执行时间的方法
Mar 21 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 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开发中的错误收集,不定期更新。
2011/02/03 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
jquery获取及设置outerhtml的方法
2015/03/09 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
python self,cls,decorator的理解
2009/07/13 Python
python实现电子词典
2020/04/23 Python
介绍Python的Django框架中的QuerySets
2015/04/20 Python
Python3 Random模块代码详解
2017/12/04 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
python 字段拆分详解
2019/12/17 Python
win10安装python3.6的常见问题
2020/07/01 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
毕业生自荐信
2013/12/14 职场文书
优秀士兵个人事迹材料
2014/01/19 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
化工实习心得体会
2014/09/09 职场文书
高中生学习计划书
2014/09/15 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python