php数组比对算法,php学习之两种方法使用比较数组差异的array_diff()函数
本篇文章将简单介绍php比较两个数组的差异array_diff()函数,感兴趣的朋友可以了解一下。
php内置函数中有一个array_diff():意思比较两个数组的键值,并返回差集。
下面是通过数组遍历来实现差集:
首先有两个不同的数组$arr_1,$arr_2:
第一种方法:
function fun($arr_1,$arr_2) { foreach ($arr_1 as $key => $val) { $bool = false; foreach ($arr_2 as $k => $v) { if($bool = ($val == $v)) { break; } } if(!$bool) { $diff[$key] = $val; } } }
这种虽然能够实现数组间的差异,如果数组长度达到一定的长度后,效率不容乐观。
二种方法:
foreach ($arr_1 as $key => $val) { if(in_array($val,$arr_2)) { unset($arr_1[$key]); } }
这种方式在其他博客上说可以和array_diff()媲美。
三种方式:
通过"array_flip();"将arr_2数组键值反转后,判断arr_1数组中的值是否在arr_2的键中
$arr_2 = array_flip($arr_2);foreach ($arr_1 as $key => $val) { if(isset($arr_2[$val])) { unset($arr_1[$key]); } }
相关教程:PHP视频教程
php数组比对算法,php学习之两种方法使用比较数组差异的array_diff()函数相关推荐
- 知识点2:js(javascript)中检测是否为数组的两种方法【翻转数组案例】
javascript基础知识 文章目录 javascript基础知识 前言 一.翻转数组案例 二.检测数组的两种方法 1.如果传输的参数不是数组 2.instanceof 运算符 可以用来检测是否满足 ...
- 使用Linux服务器运行深度学习代码 || 两种方法,粗暴高效
[本文是介绍快速远程使用Linux服务器运行深度学习.机器学习代码,全程高能,史上最全] 前面介绍了以下几个内容,不会的可以转链接看下 教你无脑式安装Xshell.Xftp,快速远程连接使用Linux ...
- 两种方法求解 正数数组中 两个数相减 的最大值
一,问题描述 给定一个正数数组arr(即数组元素全是正数),找出该数组中,两个元素相减的最大值,其中被减数的下标不小于减数的下标. 即求出: maxValue = max{arr[j]-arr[i] ...
- 十大排序算法之快速排序(两种方法)
十大排序算法之快速排序 本文采用Java书写选择排序,其他语言类似可以借鉴着写 思想:在待排序序列中选择一个分割元素,将待排序序列中所有比分割元素关键字小的元素移动到分割元素左侧位置:将待排序序列中所 ...
- leetcode242. 有效的字母异位词(两种方法map或数组)
一:题目 二:上码 1:方法一(map解法) class Solution {public:bool isAnagram(string s, string t) {/**思路:1.分析题意,这个是要判 ...
- RSA算法计算d的两种方法。
例题: 假设p=5,q=7,e=5,m=2.计算d,公钥,私钥. 方法一: 解: n=p*q=5*7=35 Φ(n)=(p-1)*(q-1)=4*6=24 由公式:e d mod Φ(n)=== 1 ...
- java数组循环扩容_Java中实现数组动态扩容的两种方法
Java中实现数组动态扩容的两种方法 java中初始化一个数组需要定义数组的容量,而在我们使用数组时往往会遇到数组容量不够的情况,此时我们就需要通过动态扩容的方式来来根据需求扩大数组的容量. 我们可以 ...
- 集合转换成数组的两种方法---toArray()和toArray(T[] a)
实际开发中经常会用到将集合转换成数组进行操作,list有两种方法可以进行数组的转换. 首先看下List的这两个方法的说明: Object[ ] toArray() :返回按适当顺序包含列表中的所有元 ...
- python键盘输入数组_python 二维数组切割Python读取键盘输入的2种方法
Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...
最新文章
- Excel 计算除法并显示为万分之几,如0.15‱
- 计算机启动过程详解二
- 批量移动某目录下某类型的文件到指定的目录下
- Robot Framework操作mongodb数据库
- Shell——常用工具(cut、sed、awk、sort)
- 闲谈简单设计(KISS)疑惑
- @Springboot搭建项目controller层接收json格式的对象失败
- 使用AWS Lambdas扩展技术堆栈
- (王道408考研数据结构)第二章线性表-第三节3:循环单链表和循环双链表
- yii2 HeadersAlreadySentException 报错 解决方案
- TransE:Translating Embedding多元关系数据嵌入(知识图谱嵌入)2013 NIPS
- ztree 标准得json数据格式_Django+zTree构建组织架构树
- uitableView group模式下的间距问题
- java基础-基础类型包装类型
- USB转RS232串口应用
- 简易火锅店点餐结算小程序
- Html表格实现行上下移动
- 计算机睡眠状态能挂游戏,windows10睡眠挂游戏
- jquery选择器连续选择_jQuery选择器简介
- OCP 12c最新考试题库及答案(071-2)
热门文章
- java和python和php_Java、Python和PHP三者的区别
- python怎么爬取一个网页图片_python爬虫怎么实现爬取网站图片?
- python按键盘上哪个键运行_python按什么键运行
- 为什么要用spring
- 测试自动化金字塔在软件开发中是如何使用的?
- 程序员:进不了大厂,就“永无出头之日”了?
- 一个在职的软件测试的日常工作是怎么样的?
- 计算机云文档,计算机的云计算论文.doc
- char 赋值 加入变量_王牌编程语言Java常量、变量、数据类型详解
- 判断包含字符当中包含小数点_Python|提取包含指定文本的行到一个文本文件(字符串或正则)...