Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP检查一个数组是否不';除了另一个数组之外,没有其他值_Php_Arrays - Fatal编程技术网

PHP检查一个数组是否不';除了另一个数组之外,没有其他值

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*/ ?>

我试图检查一个数组是否除了另一个之外没有其他值,但是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*/
?>


我该怎么做

使用

。。或者想想看

$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) {