检查一个数组的所有元素是否存在于其他元素中

时间:2013-11-10 11:47:00

标签: php arrays

我想知道是否有一个PHP函数可以检查一个数组的所有值是否存在于另一个数组中。

所以例如我有这个:

$a = array ('v1', 'v3', 'v4');
$b = array ('v1', 'v2', 'v3', 'v4', 'v5');

我想将$a$b进行比较。由于$a中的$b的所有值都存在于true中,因此它应返回{{1}}。

在PHP中有一种有效的方法吗?

5 个答案:

答案 0 :(得分:4)

First way

$result = $a === array_intersect($a, $b);

Second way

$result = !count(array_diff($a, $b));

答案 1 :(得分:2)

使用array_diff。它返回第一个数组中第二个不存在的所有元素。如果结果为空,则所有项目都将存在于另一个数组中。

答案 2 :(得分:0)

<?php

$a = array('v1', 'v3', 'v4');
$b = array('v1', 'v2', 'v3', 'v4', 'v5');

function is_array_in_array($a, $b) {
    return count($a) === count(array_intersect($a, $b));
}

$test = is_array_in_array($a, $b);

var_dump($test);

答案 3 :(得分:0)

$a = array ('v1', 'v3', 'v4');
$b = array ('v1', 'v2', 'v3', 'v4', 'v5');

function compare($first,$second) {
    return count(array_diff($first, $second))==0;
}

compare($a,$b); // true

http://us3.php.net/manual/en/function.array-diff.php

答案 4 :(得分:0)

这可以通过使用:

轻松完成
$result = $a === array_intersect($a, $b);