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添加MySQL数据记录代码
Jun 07 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
Nov 12 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
Oct 29 PHP
php无限遍历目录示例
Feb 21 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
简单解决新浪SAE无法上传文件的问题
May 13 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
Apr 19 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP递归统计系统中代码行数
Sep 19 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转盘抽奖接口实例
2015/02/09 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
php输出图像的方法实例分析
2017/02/16 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
jQuery Ajax文件上传(php)
2009/06/16 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
python 将字符串转换成字典dict
2013/03/24 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
python将视频转换为全字符视频
2019/04/26 Python
Python搭建代理IP池实现接口设置与整体调度
2019/10/27 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
一个精品风格的世界:Atterley
2019/05/01 全球购物
SHEIN台湾:购买最新流行女装服饰
2019/05/18 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript