与多个值进行比较

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';
}

我正在寻找一种简单的方法来做这件事。有什么建议吗?


你想要检查 所有 变量是否具有相同的值吗? - deceze
6
把你的变量放在一个数组里,然后使用 array_unique 创建另一个数组。如果这两个数组的计数不同,那么你至少有两个相同的值。 - yent
@decereé 不,我想检查任意两个变量是否具有相同的值? - Ashwini Agarwal
@yent,把它放在回答里就好了! :-) - Marty McVry
3个回答

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

if (count($arr) !== count(array_unique($arr))) {
  echo 'At-least two variables have same value';
}

7
如果你想查找变量中是否有重复的值,将它们放入一个数组中,并使用array_count_values函数:

array_count_values()函数返回一个数组,其中使用输入数组的值作为键,它们在输入中出现的频率作为值。

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

例如:

$values = array(1,2,3,1);
if(max(array_count_values($values)) > 1) {
   ...

1
жҲ‘и®Өдёәиҝҷз§Қж–№жі•жҜ”иө· count + array_unique жӣҙй«ҳж•ҲпјҢ并且жҸҗдҫӣдәҶжӣҙеӨҡзҡ„дҝЎжҒҜгҖӮ - Alix Axel

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';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接