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 SQLite类
May 07 PHP
php 正确解码javascript中通过escape编码后的字符
Jan 28 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
php使用PDO执行SQL语句的方法分析
Feb 16 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
php注册审核重点解析(数据访问)
May 23 PHP
PHP获取数组中指定的一列实例
Dec 27 PHP
laravel ORM 只开启created_at的几种方法总结
Jan 29 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
Apr 24 PHP
PHP一个简单的无需刷新爬虫
Jan 05 PHP
laravel返回统一格式错误码问题
Nov 04 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
for循环连续求和、九九乘法表代码
2012/02/20 PHP
php实现可运算的验证码
2015/11/10 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
vue.js实现只弹一次弹框
2018/01/29 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
Python中使用中文的方法
2011/02/19 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
itchat接口使用示例
2017/10/23 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
阳光体育活动方案
2014/02/16 职场文书
情况说明书格式范文
2014/05/06 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
长城导游词300字
2015/01/30 职场文书
努力工作保证书
2015/02/28 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS