6

我有大约 20 个不同的变量,我想将这些变量相互比较以检查它们是否相等。

例子

$var1 = 1;
$var2 = 2;
$var3 = 1;
$var4 = 8;
.
.
.
$var10 = 2;

现在我想检查...

if($var1 == $var2 || $var1 == $var3 || $var1 == $var4 || ......... || $var2 == $var3 || $var2 == $var4 || ............. || $var8 = $var9 || $var8 == $var10 ||...)
{
    echo 'At-least two variables have same value';
}

我正在寻找一个容易做到这一点的方法。有什么建议么?

4

3 回答 3

10
$arr = array($var1, $var2, ... , $var10);

if (count($arr) !== count(array_unique($arr))) {
  echo 'At-least two variables have same value';
}
于 2012-08-13T07:45:57.117 回答
7

如果您想找出是否有任何变量重复,请将它们放在一个数组中并使用array_count_values

array_count_values()使用输入数组的值作为键并将它们在输入中的频率作为值返回一个数组。

如果结果中有任何大于 1 的值,则存在匹配项。

例如

$values = array(1,2,3,1);
if(max(array_count_values($values)) > 1) {
   ...
于 2012-08-13T07:46:26.653 回答
0

首先,将它们保存到一个数组中,一切都变得简单

$list=array("1"=>$var1,"2"=>$var2,......,"10"=>$var10);
$list2=array_unique($list);
if(count($list2) != count($list))
    echo 'At-least two variables have same value';
于 2012-08-13T07:49:40.007 回答