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比较多维数组中值的大小排序实现代码
Sep 08 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
php5.5中类级别的常量使用介绍
Oct 02 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
php遍历目录方法小结
Mar 10 PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 PHP
浅谈PHP命令执行php文件需要注意的问题
Dec 16 PHP
PHP isset()与empty()的使用区别详解
Feb 10 PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 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中对数据库操作的封装
2006/10/09 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
动态加载iframe
2006/06/16 Javascript
jQuery技巧总结
2011/01/01 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
Python中的yield浅析
2014/06/16 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python实现抽奖小程序
2020/04/15 Python
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
如何获取Python简单for循环索引
2019/11/21 Python
python 获取计算机的网卡信息
2021/02/18 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
乡镇干部先进事迹材料
2014/02/03 职场文书
护理专业自荐信范文
2014/02/26 职场文书
电焊工岗位职责
2014/03/06 职场文书
美容院店长岗位职责
2014/04/08 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
幼儿教师2014年度工作总结
2014/12/16 职场文书
小学生成绩单评语
2014/12/31 职场文书
2015年班主任德育工作总结
2015/05/21 职场文书