比较两个数组以找到它们相同的值

时间:2013-08-11 17:14:07

标签: php

这是两个数字数组:

$a = array(0 => '1,3');

$b = array(
    0 => '1,2,4',
    1 => '1,2',
    2 => '4,3',
    3 => '2,4',
    4 => '1,3'
);

我想比较这两个数组并找到它们相同的值。例如,在这种情况下,第一个数组中的[0] => 1,3与第二个数组中的[4] => 1,3匹配。

我尝试使用array_diff来实现这一点,但没有成功。任何人都可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

使用array_search()在数组中搜索给定值:

$a = array(0 => '1,3');
$b = array(
    0 => '1,2,4',
    1 => '1,2',
    2 => '4,3',
    3 => '2,4',
    4 => '1,3'
);

foreach ($a as $val) {
    if ($key = array_search($val, $b)) {
        echo "'$val' is matched in '$key' index";
        break;
    }
}

输出:

'1,3' is matched in '4' index

您还可以执行以下操作:

$match = array();
foreach ($a as $val) {
    if (array_search($val, $b)) {
        $match[] = $val;
    }
}

print_r($match);

输出:

Array
(
    [0] => 1,3
)

<强>更新

正如OP所提到的,为此我们也使用array_intersect()函数:

$a = array(0 => '1,3');
$b = array(
    0 => '1,2,4',
    1 => '1,2',
    2 => '4,3',
    3 => '2,4',
    4 => '1,3'
);

print_r(array_intersect($a, $b));

输出:

Array
(
    [0] => 1,3
)