我想知道是否有一个PHP函数可以检查一个数组的所有值是否存在于另一个数组中。
所以例如我有这个:
$a = array ('v1', 'v3', 'v4');
$b = array ('v1', 'v2', 'v3', 'v4', 'v5');
我想将$a
与$b
进行比较.由于$a
的所有值也存在于$b
因此它应该返回true
。
在 PHP 中是否有一种有效的方法来做到这一点?
第一种方式:
$result = $a === array_intersect($a, $b);
第二种方式:
$result = !count(array_diff($a, $b));
使用 array_diff
.它返回第一个数组中第二个数组中不存在的所有元素。如果结果为空,则所有项目都将存在于另一个数组中。
<?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);
$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
这可以通过使用以下方法轻松完成:
$result = $a === array_intersect($a, $b);