如何确定数组是否包含除特定值之外的任何内容?

Jim*_*991 1 php php-7

给定下面的值数组,确定该数组是否包含值 4 以外的值的最佳方法是什么?

$values = [1,2,3,4,5,6];
Run Code Online (Sandbox Code Playgroud)

为了清楚起见,我不想检查 4 是否根本不存在,因为 4 仍然允许存在于数组中。我想检查是否存在其他数字。

我能想到的唯一方法是使用函数,如下所示:

function checkOtherValuesExist(array $values, $search) {
  foreach ($values as $value) {
    if ($value !== $search) 
      return TRUE;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Jus*_*nas 5

简单地array_diff获取没有 4 的数组

$diff = array_diff($values, [4]);

if (!empty($diff)) {
    echo "Array contains illegal values! "
        . "Legal values: 4; Illegal values: " . implode(', ', $diff);
} else {
    echo "All good!";
}
Run Code Online (Sandbox Code Playgroud)