首页 > 其他分享 >获得数组的交集与差集

获得数组的交集与差集

时间:2023-08-14 21:32:24浏览次数:37  
标签:intersect 交集 差集 assoc 数组 diff array Apple


PHP获得数组的交集与差集





服务器君一共花费了71.420 ms进行了6次数据库查询,努力地为您提供了提供了这个页面。





数组的交集 array_intersect()

array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下:


1
 array array_intersect(array array1,array array2[,arrayN…])
 
  
 下面这个例子将返回在$fruit1数组中出现的且在$fruit2和$fruit3中也出现的所有的水果:
 
  
01
 <?php
 
    
02
 $fruit1 = array("Apple","Banana","Orange");
 
    
03
 $fruit2 = array("Pear","Apple","Grape");
 
    
04
 $fruit3 = array("Watermelon","Orange","Apple");
 
    
05
 $intersection = array_intersect($fruit1, $fruit2, $fruit3);
 
    
06
 print_r($intersection);
 
    
07
  
 
    
08
 // output
 
    
09
 // Array ( [0] => Apple )
 
    
10
 ?>
 
  
 只有在两个元素相等且具有相同的数据类型时,array_intersect()函数才会认为它们是相同的。
 关联数组的交集 array_intersect_assoc()
 函数array_intersect_assoc()与array_intersect()基本相同,只不过他在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才返回到结果数组中。
 形式如下:
 
  
1
 array array_intersect_assoc(array array1,array array2[,arrayN…])
 
  
 下面的例子返回了出现在$fruit1数组中,也同时出现在$fruit2与$fruit3中的所有键/值对:
 
  
01
 <?php
 
    
02
 $fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");
 
    
03
 $fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");
 
    
04
 $fruit3 =array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");
 
    
05
 $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
 
    
06
 print_r($intersection);
 
    
07
  
 
    
08
 // output
 
    
09
 // Array ( [red] => Apple )
 
    
10
 ?>
 
  
 数组的差集 array_diff()
 函数array_diff()返回出现在第一个数组中但其他输入数组中没有的值。这个功能与array_intersect()相反。
 
  
1
 array array_diff(array array1,array array2[,arrayN…])
 
  
 实例如下:
 
  
01
 <?php
 
    
02
 $fruit1 = array("Apple","Banana","Orange");
 
    
03
 $fruit2 = array("Pear","Apple","Grape");
 
    
04
 $fruit3 = array("Watermelon","Orange","Apple");
 
    
05
 $intersection = array_diff($fruit1, $fruit2, $fruit3);
 
    
06
 print_r($intersection);
 
    
07
  
 
    
08
 // output
 
    
09
 // Array ( [1] => Banana )
 
    
10
 ?>
 
  
 关联数组的差集 array_diff_assoc()
 函数array_diff_assoc()与array_diff()基本相同,只是它在比较时还考虑了数组的键。因此,只在第一个数组中出现而不再其他输入数组中出现的键/值对才会返回到结果数组中。其形式如下:
 
  
1
 array array_diff_assoc(array array1,array array2[,arrayN…])
 
  
 下面的例子只返回了[yellow] => Banana,因为这个特殊的键/值对出现在$fruit1中,而在$fruit2和$fruit3中都不存在。
 
  
01
 <?php
 
    
02
 $fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");
 
    
03
 $fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");
 
    
04
 $fruit3 =array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");
 
    
05
 $intersection = array_diff_assoc($fruit1, $fruit2, $fruit3);
 
    
06
 print_r($intersection);
 
    
07
  
 
    
08
 // output
 
    
09
 // Array ( [yellow] => Banana )
 
    
10
 ?>

标签:intersect,交集,差集,assoc,数组,diff,array,Apple
From: https://blog.51cto.com/drennetwork/7081951

相关文章

  • 稀疏数组(五子棋)详解
    稀疏数组的介绍(五子棋)当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:记录数组一共有几行列,有多少个不同把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模------->packagearra......
  • 使用布隆过滤器求两个大文件交集
    随着互联网的发展,大数据应用越来越多。如何在内存有限的条件下,对超大规模数据进行效率处理,是一个值得探讨的问题。本文将以求两个文件共同元素为例,探讨一种基于布隆过滤器的高效算法。问题描述假设有文件A和文件B,各包含50亿个url,每个url64字节,内存限制为4G。要求找出A和B......
  • 学习笔记 - Java 数组
    数组的概述数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。数组是有序排列的,且数组属于引用数据类型,但数组中的元素既可以是基本数据类型,又可以是引用数据类型。数组的存储是在内存中开启一片连续的空间,长度一旦......
  • P3374 【模板】树状数组
    \(P3374\)【模板】树状数组1#include<bits/stdc++.h>usingnamespacestd;constintN=5*1e5+10;intn,m;inta[N];//树状数组模板inttr[N];intlowbit(intx){returnx&-x;}voidadd(intx,intc){for(inti=x;i<N;i+=lo......
  • 数组奇数偶数分组,并排序
    数组奇数偶数分组,并排序  PHPJS套路也差不多googgirl于2018-07-1916:59:50发布3647收藏2版权对数组按奇数偶数分组,并进行排序python代码实现如下:aa=[32,35,1,2,34,33]even=[]odd=[]foriinaa:ifi%2==0:even.append(i)else:odd.appe......
  • 一个含有奇数和偶数的数组,在js中如何对它进行排序,使得其中奇数升序,偶数还在原来的位置
    一个含有奇数和偶数的数组,在js中如何对它进行排序,使得其中奇数升序,偶数还在原来的位置?ZWMLLL于2019-05-0912:00:00发布1222收藏1文章标签:JS版权思路:我们可以返回数组array中的奇数,形成一个新的奇数odd数组(利用filter()返回),同时在建立一个位置place数组来保存每个奇数的位置......
  • Go/C++/Java中的数组对比
    数组是大多数编程语言中的基本数据结构。然而,不同的编程语言对数组的实现和语义有所不同。以下是Go、C++和Java中数组的主要区别:1.基本性质Go:数组是值类型。赋值或将数组传递给函数时,内容会被复制。数组的大小是其类型的一部分。因此,具有不同大小的数组被认为是不同......
  • js数组去重
    letarr=[1,2,2,2,3,4,5,5];letarr1=[]//方法1indexOf去重arr.map(e=>{if(arr1.indexOf(e)==-1){arr1.push(e)}})console.log(arr1)//方法2es6set去重letarr2=Array.from(newSet(arr))console.log(arr2)//方法3将数组的值保存为对象的key形式(o......
  • 第13周项目1-数组大折腾(2)
    问题及代码:/**Copyright(c)2014,烟台大学计算机学院*Allrightsreserved.*文件名称:MADE51.cpp*作者:孙化龙*完成日期:2014年11月22日*版本号:v1.0**问题描述:创建一个有10个元素的整型数组,初始化,从后往前输出数组中元素的值,令所有数据加倍,输出改变后的值*......
  • 第14周项目1-折腾二维数组
    问题及代码:/**Copyright(c)2014,烟台大学计算机学院*Allrightsreserved.*文件名称:MADE62.cpp*作者:孙化龙*完成日期:2014年11月27日*版本号:v1.0**问题描述:创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后执行各项操作*输......