PHP. Как проверить равенство значений нескольких переменных между собой

12
U2
На сайте с 13.09.2007
Offline
0
12675

Есть 4 переменнные.

Нужно проверить не совпадают ли их значения между собой.

Есть ли более изящный вариант, чем

if ($var1 == $var2 or $var1 == $var3 or $var1 == $var4 or $var2 == $var3 or $var2 == $var4 or $var3 == $var4)?

Заранее спасибо.

kimberlit
На сайте с 13.03.2007
Offline
370
#1

Они должны все четыре по условию совпадать или нужно найти хотя бы одно совпадение?

Каширин
На сайте с 03.01.2004
Offline
1030
#2

Например, так:


$vars = array($var2,$var3,$var4,$var5);
if (in_array($var1,$vars)) echo "йа криведко";
Kolyaj
На сайте с 28.03.2006
Offline
69
#3

Судя по вашему выражению if (а не по вашему тексту :) ) вам нужно определить, имеются ли в наборе из нескольких переменных хотя бы две одинаковые. Можно так, к примеру


$vars = array($var1, $var2, $var3, $var4);
if (count($vars) > count(array_unique($vars)))
echo "йа криведко (с) Каширин";
Segey
На сайте с 23.08.2005
Offline
404
#4

User274,

Как я понял нужно все


if('asd' & 8 & 8 & 1){

echo '!';
}
Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
NM
На сайте с 12.09.2007
Offline
0
#5

применительно к числовым значениям можно так, например:

$i_1 == ($i_1+$i_2+$i_3+$i_4)/4 ? print $i_1 : print 'Error';

AN
На сайте с 05.06.2004
Offline
243
#6
nal.master:
применительно к числовым значениям можно так, например:

$i_1 == ($i_1+$i_2+$i_3+$i_4)/4 ? print $i_1 : print 'Error';

i_1 = 4

i_2 = 1

i_3 = 3

i_4 = 8

:)

Размещу ваши баннеры на посещаемых сайтах. Места еще есть! Возможен безнал. (/ru/forum/324945) Нужны копирайтеры/рерайтеры - медики. Пишите в личку. (/ru/forum/676932)
NM
На сайте с 12.09.2007
Offline
0
#7

тогда так:

$i_1 == max($i_2,max($i_3,$i_4)) ? print $i_1 : print 'Error';

но это тоже частный случай...

K
На сайте с 31.01.2001
Offline
737
#8

Может их отсортировать а потом сравнить все соседние в цикле (3 сравнения). Годится для любого количества переменных.

Выделенные полосы в Москве (http://www.probkovorot.info) привели к снижению скорости до 23%.
Kolyaj
На сайте с 28.03.2006
Offline
69
#9
nal.master:
тогда так:
$i_1 == max($i_2,max($i_3,$i_4)) ? print $i_1 : print 'Error';

Ну что за бред вы пишите? Для чего вы сравниваете первое число с максимальным среди остальных трех?

dvaes
На сайте с 03.09.2007
Offline
65
#10

у Kolyaj нормальный пример. отсюда кстати можно проверять на одинаковость все переменные


$vars = array($var1, $var2, $var3, $var4);
if (count(array_unique($vars))==1)
echo "йа криведко (с) Каширин";
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий