我有 2 个数组。我只是想知道数组 1 中的值之一是否存在于数组 2 中。无非就是返回一个 bool 值 true 或 false
示例 A:
$a = array('able','baker','charlie');
$b = array('zebra','yeti','xantis');
预期结果=假
示例 B:
$a = array('able','baker','charlie');
$b = array('zebra','yeti','able','xantis');
预期结果=真
那么,最好使用 array_diff() 或 array_search() 或其他一些简单的 PHP 函数吗?
谢谢!
最佳答案
一个简单的方法是使用 array_intersect 并检查它是否不为空。
$a = array('able','baker','charlie');
$b = array('zebra','yeti','xantis');
echo !!array_intersect($a, $b) ? 'true' : 'false'; //false
$a = array('able','baker','charlie');
$b = array('zebra','yeti','able','xantis');
echo !!array_intersect($a, $b) ? 'true' : 'false'; //true
或者你可以做一个简单的函数来检查是否至少有一个交叉点。这比第一个更快,因为它不必找到所有的交叉点。当它找到一个时,它会立即返回 true。
function check_for_intersect($a, $b) {
$c = array_flip($a);
foreach ($b as $v) {
if (isset($c[$v])) return true;
}
return false;
}
$a = array('able','baker','charlie');
$b = array('zebra','yeti','xantis');
echo check_for_intersect($a, $b) ? 'true' : 'false';
$a = array('able','baker','charlie');
$b = array('able','zebra','yeti','xantis');
echo check_for_intersect($a, $b) ? 'true' : 'false';
关于PHP 比较 2 个数组的值是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692016/