PHP检查一个数组是否不';除了另一个数组之外,没有其他值
我试图检查一个数组是否除了另一个之外没有其他值,但是in_数组()不起作用,所以我猜它不能用in_数组()完成 比如说PHP检查一个数组是否不';除了另一个数组之外,没有其他值,php,arrays,Php,Arrays,我试图检查一个数组是否除了另一个之外没有其他值,但是in_数组()不起作用,所以我猜它不能用in_数组()完成 比如说 <?php $arr1 = array(1,2,3,4,5,6); $arr2 = array(1,2,9); if(/*all values in $arr2 are in $arr1*/){ /*return true*/ } else{ /*return false*/ } /*this examle should return false*/ ?>
<?php
$arr1 = array(1,2,3,4,5,6);
$arr2 = array(1,2,9);
if(/*all values in $arr2 are in $arr1*/){
/*return true*/
}
else{
/*return false*/
}
/*this examle should return false*/
?>
或
我该怎么做 使用
。。或者想想看
$array == array_intersect($array,$valid);
请注意,如果
(string)$elementtocheck=(string)$validelement
,因此本质上
可用于标量。如果数组中有更复杂的值
(数组、对象),这不起作用。为了让它工作,我们把它改成
位:
。。。假设当前顺序无关紧要/sort()
是
允许打电话
你试过了吗
$arr1 == $arr2
或者你可以使用一个函数
<?php
function compareArrays(Array $a, Array $b){
if(count($a) != count($b)){
return false;
}
foreach($a as $value){
if( !in_array($value, $b) ){
return false;
}
}
return true;
}
?>
这只是一个示例,但您可以这样做。您可以使用
array\u intersect()
函数:
if (array_intersect($arr1, $arr2) == $arr2) {
// $arr2 has only elements from $arr1
} else {
// $arr2 has not only elements from $arr1
}
尝试
数组_diff
:
范例
public function checkSameContents($arr1, $arr2) {
$diff = array_diff($arr1, $arr2); // returns "unsame" elements in array
return count($diff) === 0;
}
如果数组具有相同的内容,此函数将返回true,如果没有,则返回false
希望这有帮助 这是您要查找的条件:
if (count(array_diff($arr2, $arr1)) == 0) {
这里有很多数组函数:array\u merge、array\u diff、array\u intersect等等……我没有更复杂的数据,只有数字,这就是为什么我发布了这样一个例子。谢谢,我喜欢你的答案,但当我看到你的答案时,我已经接受了。
if (array_intersect($arr1, $arr2) == $arr2) {
// $arr2 has only elements from $arr1
} else {
// $arr2 has not only elements from $arr1
}
public function checkSameContents($arr1, $arr2) {
$diff = array_diff($arr1, $arr2); // returns "unsame" elements in array
return count($diff) === 0;
}
if (count(array_diff($arr2, $arr1)) == 0) {