array_intersect,array_intersect_ukey

http://www.itjxue.com  2023-01-22 14:49  来源:未知  点击次数: 

如何快速取两个二维数组中的交集

一维数组取交集是非常的简单,直接用一个函数即可。array_intersect($arr, $ar),那么二维数组又是如何的取出它们的交集呢,可能有人同样想用这个函数,但结果却不是我们想要的。下面有这样的一个数组:

$arr=array(

array('a'='1',2),

array(3,4)

);

$ar=array(

array('a'=1,2),

array(3,4)

);

如果我单独用 array_intersect($arr, $ar)。返回的结果如下:

array(

array('a'='1',2),

array(3,4)

);

两个php数组,怎么取得其中的相似的数据

你好.

你可以使用函数array_intersect取得其中的相似数据.实例代码:

$arr1=array(1,2,3,4,5);

$arr2=array(2,3,6,7,8);

$a=array_intersect($arr1,$arr2);

print_r($a); //输出2,3

php 判断两个数组是否有交集

在PHP中求数组的交集,我们可以与PHP给我们提供的现成函数:array_intersect(),其用法格式为:

array array_intersect(array array1,array array2[,arrayN…])

根据上述的语法格式,我们来写一个例子:

1 ?php

2 $fruit1 = array("Apple","Banana","Orange");

3 $fruit2 = array("Pear","Apple","Grape");

4 $fruit3 = array("Watermelon","Orange","Apple");

5 $intersection = array_intersect($fruit1, $fruit2, $fruit3);

6 print_r($intersection);

7 // 输出结果:

8 // Array ( [0] = Apple )

9 ?

本例子将返回在$fruit1数组中出现且在$fruit2和$fruit3中也出现的所有水果的名子。

使用array_intersect()函数时要注意:只有在两个元素相等且具有相同的数据类型时,array_intersect()函数才会认

为它们是相同的,否则不能进行交集计算。array_intersect()函数返回一个保留了键的数组,只由第一个数组中出现的且在其它数组中都出现的

值组成。

若要求关联数组的交集,请使用array_intersect_assoc()函数,给你个简单的例子:

1 ?php

2 $fruit1 = array("red"="Apple","yellow"="Banana","orange"="Orange");

3 $fruit2 = array("yellow"="Pear","red"="Apple","purple"="Grape");

4 $fruit3 = array("green"="Watermelon","orange"="Orange","red"="Apple");

5 $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);

6 print_r($intersection);

7 // 输出:

8 // Array ( [red] = Apple )

9 ?

array_intersect_assoc()函数语法格式如下:

array array_intersect_assoc(array array1,array array2[,arrayN…])

array_intersect_assoc()与array_intersect()基本相同,只不过他在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才返回到结果数组中。

php 多个多维数组求交集

array_intersect

(PHP 4 = 4.0.1, PHP 5)

array_intersect -- 计算数组的交集说明

array array_intersect ( array array1, array array2 [, array ...])

array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。

例子 1. array_intersect() 例子

?php

$array1 = array ("a" = "green", "red", "blue");

$array2 = array ("b" = "green", "yellow", "red");

$result = array_intersect ($array1, $array2);

?

这使得 $result 成为:

Array

(

[a] = green

[0] = red

)

注: 两个单元仅在 (string) $elem1 === (string) $elem2 时被认为是相同的。也就是说,当字符串的表达是一样的时候。

array_diff

(PHP 4 = 4.0.1, PHP 5)

array_diff -- 计算数组的差集说明

array array_diff ( array array1, array array2 [, array ...])

array_diff() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。

例子 1. array_diff() 例子

?php

$array1 = array ("a" = "green", "red", "blue", "red");

$array2 = array ("b" = "green", "yellow", "red");

$result = array_diff ($array1, $array2);

?

这使得 $result 成为 array (1 = "blue");。在 $array1 中多次出现的值同样对待。

注: 两个单元仅在 (string) $elem1 === (string) $elem2 时被认为是相同的。也就是说,当字符串的表达是一样的时候。

注: 注意此函数仅检查多维数组中的一维。当然你可以用 array_diff($array1[0], $array2[0]); 检查更深的维度。

array_diff_assoc -- 带索引检查计算数组的差集

说明

array array_diff_assoc ( array array1, array array2 [, array ...])

array_diff_assoc() 返回一个 array,返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。

例子 1. array_diff_assoc() 例子

?php

$array1 = array ("a" = "green", "b" = "brown", "c" = "blue", "red");

$array2 = array ("a" = "green", "yellow", "red");

$result = array_diff_assoc($array1, $array2);

?

上面的例子中可以看到键值对 "a" = "green" 在两个数组中都有,因此不在本函数的输出中。与此不同,键值对 0 = "red" 出现在输出中是因为第二个参数中的 "red" 的键名是 1。

键值对 key = value 中的两个值仅在 (string) $elem1 === (string) $elem2 时被认为相等。也就是说使用了严格检查,字符串的表达必须相同。

(责任编辑:IT教学网)

更多

相关Mail服务器文章

推荐Mail服务器文章