如何在PHP中使数组相交?

时间:2016-05-13 13:35:00

标签: php

这是我的两个阵列:

$head_office = array(600,400,534,678,601,90);
$Sb_office = array(600,400,530,678,600,90,84);

我的愿望输出:

array(600,400,678,90);

我在尝试:

print_r(array_intersect($Sb_office,$head_office));

输出:

Array ( [0] => 600 [1] => 400 [3] => 678 [4] => 600 [5] => 90 )

如何避免值600?

注意:我没有删除重复的值。我想获得2个数组之间的匹配值。

5 个答案:

答案 0 :(得分:0)

使用array_unique()

$head_office = array(600,400,534,678,601,90);
$Sb_office = array(600,400,530,678,600,90,84);

print_r(array_unique(array_intersect($Sb_office,$head_office)));

<强>输出

Array ( [0] => 600 [1] => 400 [3] => 678 [5] => 90 ) 

答案 1 :(得分:0)

使用array_unique

此外,您可以使用array_values来更改新阵列的键。

$head_office = array(600,400,534,678,601,90);
$Sb_office = array(600,400,530,678,600,90,84);

print_r(array_values(array_unique(array_intersect($Sb_office,$head_office))));

输出

  

数组([0] =&gt; 600 [1] =&gt; 400 [2] =&gt; 678 [3] =&gt; 90)

答案 2 :(得分:0)

您希望避免重复值600的接缝。您可以使用 array_unique()(如下所示)

print_r(arry_unique(array_intersect($Sb_office,$head_office)));

答案 3 :(得分:0)

交换$ head_office和$ Sb_office

<?php
$head_office = array(600,400,534,678,601,90);
$Sb_office   = array(600,400,530,678,600,90,84);

print_r( array_intersect($head_office, $Sb_office) );

<强>输出:

Array
(
    [0] => 600
    [1] => 400
    [3] => 678
    [5] => 90
)

答案 4 :(得分:0)

我得到了部分答案:

print_r( array_intersect_assoc($head_office, $Sb_office) );