20 Variablen auf gleichen Inhalt prüfen

Hektik

Erfahrenes Mitglied
Hallo!

Ich habe 20 Variablen, die alle einen String beinhalten. Es darf keine Variable denselben String wie eine andere haben. Wie überprüfe ich das jetzt, OHNE 400 mal "if($var1 == $var2)" zu erstellen?
 
Möchtest Du dann auch eine Meldung ausgeben wenn dem so ist?

Wenn nicht könntest Du deine Variablen ja in ein array schreiben und dann mit array_flip()
Schlüssel und Werte vertauschen.
Dann hast Du die doppelten entfernt
 
DerBär hat gesagt.:
Möchtest Du dann auch eine Meldung ausgeben wenn dem so ist?

Wenn nicht könntest Du deine Variablen ja in ein array schreiben und dann mit array_flip()
Schlüssel und Werte vertauschen.
Dann hast Du die doppelten entfernt

Ich will die doppelten ja nicht entfernen, nur darf es keine doppelten geben. Daher sollte schon eine Fehlermeldung ausgegeben werden.

Dennis Wronka hat gesagt.:
Heissen die Variablen wie in Deinem Beispiel $var1, $var2, etc. oder haben diese individuelle Namen?

Da ich noch in der Planung bin, ist es eigentlich egal, wie ich die nenne. :)
 
Verwende am besten ein Array, in das du die Werte speicherst. Dann entfernst du mittels [phpf]array_unique[/phpf] möglicherweise mehrfach auftretende Werte und legst das Ergebnis in einem temporären Array ab. Hat dieses nun weniger Elemente als das ursprüngliche Array, so gab trat mindestens ein Wert mehrfach auf.
 
Na da Du noch in der Planung bist wird es, wie Matthias sagte, das einfachste sein mit einem Array zu arbeiten.

Ansonsten koenntest Du, wenn Du die Variablen $var1 bis $var20 nennst mit einer Schleife arbeiten die all diese Variablen durchgeht und vergleicht.
 
PHP:
$var[0]='Wert';
$var[1]='Anderer Wert';
.
.
.
.
$var[20]='Noch ein Wert';

foreach($var as $key=>$elem){
 foreach($var as $k=>$e){
   if(!strcmp ($e, $elem )){
    $error[$k]='Doppelt';
  }
 }
}
 
Zuletzt bearbeitet:
Sorry für mein Post von oben.
Da würde der key im Error Array immer überschrieben. :-(

So muß es aussehen
PHP:
$var[0]='Wert'; 
$var[1]='Anderer Wert'; 
. 
$var[10]='Anderer Wert';  
. 
. 
$var[20]='Noch ein Wert'; 

foreach($var as $key=>$elem){ 
 foreach($var as $k=>$e){ 
   if(!strcmp ($e, $elem )){ 
    $error[$elem]='Doppelt'; 
  } 
 } 
}
 
Zuletzt bearbeitet:
Zurück