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 相关文章推荐
默默简单的写了一个模板引擎
Jan 02 PHP
php自动获取目录下的模板的代码
Aug 08 PHP
php抓取页面的几种方法详解
Jun 17 PHP
PHP判断变量是否为0的方法
Feb 08 PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 PHP
php实现过滤UBB代码的类
Mar 12 PHP
php使用GD库创建图片缩略图的方法
Jun 10 PHP
6个超实用的PHP代码片段
Aug 10 PHP
微信公众平台开发之配置与请求
Aug 26 PHP
PHP实现一维数组与二维数组去重功能示例
May 24 PHP
Laravel程序架构设计思路之使用动作类
Jun 07 PHP
JS中彻底删除JSON对象组成的数组中的元素
Sep 22 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 header示例代码(推荐)
2010/09/08 PHP
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
前端深入理解Typescript泛型概念
2020/03/09 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
python自动化测试之连接几组测试包实例
2014/09/28 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
Python切片操作实例分析
2018/03/16 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
致800米运动员广播稿
2014/02/16 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
数学系毕业生求职信
2014/05/29 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang