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中的超全局变量
Oct 09 PHP
PHP小程序自动提交到自助友情连接
Nov 24 PHP
php 中英文语言转换类代码
Aug 11 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
使用PHPCMS搭建wap手机网站
Sep 20 PHP
php实现CSV文件导入和导出
Oct 24 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
May 04 PHP
php 判断IP为有效IP地址的方法
Jan 28 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 PHP
PHP7 foreach() 函数修改
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关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
php中array_column函数简单实现方法
2016/07/11 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
JS打印组合功能
2016/08/04 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
Postman内建变量常用方法实例解析
2020/07/28 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
Python中Django发送带图片和附件的邮件
2017/03/31 Python
python常见排序算法基础教程
2017/04/13 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
个人简历自荐信
2014/06/26 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
cf战队宣传语
2015/07/13 职场文书
个人业务学习心得体会
2016/01/25 职场文书
五年级语文教学反思
2016/03/03 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫