Hvordan sjekke om tre variabler er like?

Status
Stengt for ytterligere svar.

Balex93

Medlem
Jeg bare lurer på dette av ren nysgjerrighet...

Om man må finne ut om tre variabler er like, altså noe som

PHP:
if ($var1 == $var2 == $var3) {
   echo 'De er like';
   }
else {
   echo 'De er ikke det' ;
}

Finnes det noen god måte å gjøre dette på?
 

hohohoo

Medlem
Hvis det er tall, så kan de gjøres om til binærtall, så sjekke om det reultatet blir like i hver posissjon:
..........t1-t2-t3
var1 5: 1-0-1
var2 4: 1-0-0
var3 9: 0-1-1

Hvis var1T1 = var1T2 så sjekke om var1t1 = var3t1, hvis ikke så er de ikke like. OK på begge disse gjør det samme for var2t1 osv....

........ T1-T2-T3
var1 5: 1-0-1
var2 5: 1-0-1
var3 5: 1-0-1

Så får dere tilgi den noe omtrentelige syntaksen :)
 

to-ov

Medlem
Hmm, tenker noe som dette vil funke.

PHP:
if ($var1 == $var2 && $var2 == $var3){

echo "jippi!";

}else{

echo "no go";

}
 

Balex93

Medlem
Takk til to-ov. Det fungerer utmerket.

Også takk til hohohoo for svar. Jeg kan prøve løsningen din en annen gang :)
 

Nutz

Med lem
hehe..
Ikke vanskelig å gjøre dette mer komplisert enn det det er. :)
Kjøre xor på "alle" mot "alle", så summere resultatene. Er svaret null så er de like.
 

Pong

Jeg selger sʇɥƃıluʍop :)
God kode bør imnsho ikke være snedig, smart og sånt, men enkelt. Fancy kan fort bli dyrt i vedlikehold :)

Kom idag over en sak idag (min egen kode) der jeg re-uset en variable senere i koden (det var en loop), og det førte til en time med feilsøking. Så det skal jeg passe på å ikke gjøre mer.

to-ov sin versjon er i mine øyne å foretrekke fremfor xor'ing ;)
 

Nutz

Med lem
Ja, for all del, to-ov sin løsning er den ideelle her.

Nevnte xor-løsningen som et alternativ til julenissens (hohohoo) kompliserte teori. :D
 

Sjefskoder

Sjefskoder
Hey!

PHP:
if ($var1 == $var2 && $var2 == $var3){
echo "jippi!";
}else{
echo "no go";
}

Joooooooda, funker jo fett om du skal sjekke om 1=2 og 2=3 ;)
skulle du ikke sjekke om alle var like?


Når det gjelder å sjekke flere variabler opp mot hverandre, så vil jeg foreslå at du heller legger de i et array og så bruke funksjonen array_unique, for å sjekke om variablene er unike (dvs. ikke like..)
noe som dette burde funke fett..:

PHP:
<?php

/*Først få variablene inn i et array*/
$array = array($var1, $var2, $var3);

/*Så sjekke om variablene er unike*/
if ($array == array_unique($array)) {

//dersom unike (om alle i array'et er ulike)..
echo 'Ingen like gitt';

}

/*ellers om de ikke er unike (om noen i array'et er like, med andre ord..)*/

else {
	
	echo 'Noen like gitt....';
	
}

Ikke bare er det enklere, men går og fortere å søke igjennom..
Om du er ny innenfor dette med PHP-programmering, vil du etterhvert lære deg å se løsninger på, med hurtigere og bedre-fungerende funksjoner..

Sååååå STÅ PÅ!! ;)

/S
 

Nutz

Med lem
Joooooooda, funker jo fett om du skal sjekke om 1=2 og 2=3
skulle du ikke sjekke om alle var like?

Hvilken tilstand mener du han ikke fikk med seg her?
Det at 1 og 3 aldri ble direkte sammenlignet?

Sier ikke denne seg selv slik han har uttrykt det?
 

Sjefskoder

Sjefskoder
Hey!

PHP:
<?
if ($var1 == $var2 && $var2 == $var3){ 
?>
Selvfølgelig viser den en måte man kan gjøre det på og, men hvorfor ikke lære seg å bruke array's med en gang?

og spessielt om man skal sjekke mer enn 2 variabler..
men, dette var bare ment som et eksempel og ikke en pekepinn..

men, det er ikke slik man skal gjøre det om man vill oppnå raske og stabile resultater..

Om du skal lakkere gamle bilen din gjør du det ikke med en sprayboks, bare for at noen har sagt det går, også forventer du deg at du skal få samme lakkeringsresultat som en splitter ny volvo..

eller??

/S
 
Sist redigert:

Nutz

Med lem
Det eksempelet med arrays du viste, løste jo ikke problemet til trådstarter.
Gav han bare en pekepinn på hvordan han ikke kan løse det han spurte etter. :)
Det var verken unike eller ikke unike han var ute etter, men om ALLE var like.
 
Status
Stengt for ytterligere svar.
Topp