2013-08-27 31 views
0

我想10個值比較海誓山盟,當他們是不相等的,他應​​該做一些東西......比較海誓山盟多個值在PHP

if ($a!=$b!=$c!=$d!=$e!=$f!=$g!=$h!=$i!=$j) 
{ 
// do some stuff 
} 

它沒有工作......所以我想,我恐怕無法多個值進行相互比較.. 所以我試過了:

if ($a!=$b&&$a!=$c&&$a!=$d&&$a!=$e&&$a!=$f&&$a!=$g&&$a!=$h&&$a!=$i&&$a!=$j&& 
    $b!=$c&&$b!=$d&&$b!=$e&&$b!=$f&&$b!=$g&&$b!=$h&&$b!=$i&&$b!=$j&& 
    $c!=$d&&$c!=$e&&$c!=$f&&$c!=$g&&$c!=$h&&$c!=$i&&$c!=$j&& 
    $d!=$e&&$d!=$f&&$d!=$g&&$d!=$h&&$d!=$i&&$d!=$j&& 
    $e!=$f&&$e!=$g&&$e!=$h&&$e!=$i&&$e!=$j&& 
    $f!=$g&&$f!=$h&&$f!=$i&&$f!=$j&& 
    $g!=$h&&$g!=$i&&$g!=$j&& 
    $h!=$i&&$h!=$j&& 
    $i!=$j) 
{ 
// do some stuff 
} 

但他仍然沒有做任何事情...... 我100%肯定的情況下發生的是他們都不相等^^

+0

所以基本上沒有'(A == b == ==ç== d ...é)'。爲什麼所有這些值都不在數組中? :) –

回答

2

發現陣列:

PHP 5.4+

if([$a, $b, $c, $e, $f, $g, $h, $i, $j] === array_unique([$a, $b, $c, $e, $f, $g, $h, $i, $j])) 
{ 
    //do stuff 
} 

PHP < 5.4

if(array($a, $b, $c, $e, $f, $g, $h, $i, $j) === array_unique(array($a, $b, $c, $e, $f, $g, $h, $i, $j))) 
{ 
    //do stuff 
} 
+0

Alma Do Mundo,感謝您向我介紹簡短的數組語法。 – TecBrat

+0

@TecBrat感謝您的編輯。有時我忘了,不是所有的有最新的PHP版本 –

+0

啊,好吧......這似乎更加有用......當然還有更短... – Robin93K

2

把自己的價值觀數組,然後使用這個條件:

if (count(array_unique($arr)) != 1) { 
    // at least one value is different 
} 

如果所有值必須不同,你可以使用這個:

if (count(array_unique($arr)) === count($arr)) { 
    // all values are different 
} 
+0

沒有,OP希望他們全部是不平等的(見''&&狀況) –

+0

@AlmaDoMundo這是正確的恕我直言。如果它們全部相等,'count()'將是'1'。 –

+0

@AlmaDoMundo計數將大於1,如果值不相等,只有當數組中的所有值都相同時,它纔會返回1,這就是爲什麼我把!= 1,我想沒有錯......對不起 –