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 无限分类的树类代码
Dec 03 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
PHP实现阳历到农历转换的类实例
Mar 07 PHP
php检查字符串中是否包含7位GSM字符的方法
Mar 17 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 PHP
CodeIgniter整合Smarty的方法详解
Aug 25 PHP
php表单处理操作
Nov 16 PHP
详解json在php中的应用
Sep 30 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 PHP
laravel框架的安装与路由实例分析
Oct 11 PHP
PHP7修改的函数
Mar 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_MySQL教程-第一天
2007/03/18 PHP
PHP 验证码的实现代码
2011/07/17 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
8个PHP数组面试题
2015/06/23 PHP
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
使用python在本地电脑上快速处理数据
2017/06/22 Python
Django自定义认证方式用法示例
2017/06/23 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
python用插值法绘制平滑曲线
2021/02/19 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
高分子材料与工程专业个人求职信
2013/12/15 职场文书
石油大学毕业生自荐信
2014/01/28 职场文书
社区庆八一活动方案
2014/02/02 职场文书
《莫泊桑拜师》教学反思
2014/04/23 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle