当前位置:首页 > 日记 > 正文

PHP判断一个数组是另一个数组子集的方法详解

PHP判断一个数组是另一个数组子集的方法详解

本文实例讲述了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的使用

代码

$c = array_diff($a, $b);print_r($c);$flag = empty($c)?1 : 0;if ($flag) {  echo "Yes";}else {  echo "No";}

array_intersect的使用

代码

if ($a == array_intersect($a, $b)) {  $flag = 1;}else {  $flag = 0;}if ($flag) {  echo "Yes";}else {  echo "No";}

后记

一个好的导师不仅可以教会我学习的方法,更可以教会我做人做事的方法,心怀感激,有担当

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

相关文章

Word文档功能如何画图做出五星红旗

Word文档功能如何画图做出五星红旗

红旗,文档,画图,功能,电脑软件,  Word的画图功能还是很棒的,这里我们就用它来画一面标准的五星红旗。以下是小编为您带来的关于Word画图做出五星红旗,希望对您有所帮助。Word画图做出五星红旗1、单击菜单栏的“插入”→图片&…

tim怎么加好友

tim怎么加好友

好友,电脑软件,tim,tim是腾讯推出的一款通讯团建,和qq互联互通,但画面更简洁好看。那么,tim如何加好友呢?下面小编就来介绍tim怎么加好友。主要就是寻找在tim聊天工具中添加好友的功能在哪里。点击右下角tim图标打开界面,点击如图下所示功能按…

PHPStrom 新建FTP项目以及在线操作

PHPStrom 新建FTP项目以及在线操作

操作,项目,在线,教程,电脑软件,前言PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具。它包含了WebStorm的所有功能,前后端都是相当出色,其强大便利之处,相信用过的同学们都知道。那么这里我就和大家聊聊它的 FTP和远程文件同步 …

word对号怎么打出来 word输入对号

word对号怎么打出来 word输入对号

输入,对号,电脑软件,word,word对号怎么打出来呢?word输入对号是“√ ”这样的,其实很容易打出来,学习完小编给大家分享的两种word对号打出来的方法,打对号“√ ”很轻松。方法一、word中直接插入特殊符号1、打…

WIN2003下Web服务器配置 | 1

WIN2003下Web服务器配置 | 1

服务器配置,电脑软件,Web,一、 IIS6.0综述。 IIS 6.0在Windows2003服务器的四种版本“企业版、标准版、数据中心版和Web版”中都包含有,它不能运行在Windows XP、2000或NT上。除了本文开头介绍的Windows 2003 Web版本以外,Windo…

浅析lastIndex对正则表达式结果的

浅析lastIndex对正则表达式结果的

正则表达式,电脑软件,lastIndex,前言今天遇到一个问题,用正则表达式去检查同一个字符串时,交替返回true和false。无奈之下,重新翻了翻权威指南,发现罪魁祸首原来是lastIndex。可在控制台尝试下let reg = /[\d]/g//undefinedreg.test(1)//truer…

浅谈php中变量的数据类型判断函数

浅谈php中变量的数据类型判断函数

数据类型,函数,变量,浅谈,电脑软件,在php中我们可以通过 var_dump()打印出变量的类型和值。同时我们可以通过一些函数判断变量的类型。如果只是想得到一个变量的数据类型,可以使用gettype()函数,gettype($t) 返回$t的数据类型的字符串,要是$t…

ps怎么给喷泉静态图添加动态效果?

ps怎么给喷泉静态图添加动态效果?

动态,喷泉,静态,效果,电脑软件,想要使用ps给喷泉图制作正在喷喷泉的动态效果,该怎么制作呢?下面我们就来看看详细的教程。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、首先启动Photoshop cs5,执行文…

更改3389端口方法

更改3389端口方法

方法,端口,电脑软件, 今天黑客入侵了。公司服务器。搞得今天忙的要死 。查漏洞啊,修复漏洞,打补丁什么的。一个字累, 还改了下3389.下面的步骤: 步骤1:打开注册表编辑器。 开始——运行——regedit 步骤2:查找注…

PHP实现无限极分类生成分类树的方

PHP实现无限极分类生成分类树的方

无限极分类,方法,分类,电脑软件,PHP,本文实例讲述了PHP实现无限极分类生成分类树的方法。分享给大家供大家参考,具体如下:现在的分类数据库设计基本都是:每一个分类有一个id主键字段,一个pid指向父类的id,这样便可实现无限级分类,取出的数据就是…

word批量居中对齐

word批量居中对齐

对齐,批量,电脑软件,word,Word软件,如果我们只是把插入的一张图片居中对齐,操作很简单,选中需要居中对齐的图片,然后按下快捷键CTRL+E就OK!我们继续,如果一篇word里面插入了N张图片,那么如何一次性批量对文档里面的图片进行居中对齐操作呢?word图…

bootstrap模态框嵌套、tabindex属

bootstrap模态框嵌套、tabindex属

属性,嵌套,模态框,示例代码,电脑软件,模态框嵌套在开发中,遇到需要通过点击事件触发第一个模态框,触发后通过事件唤起第二个模态框,并且通过事件触发第三个模态框;即模态框嵌套。模态框嵌套需要用一个模态框包裹所涉及嵌套的模态框,从而点击触发…