Frage - Vergleichsoperatoren

Alice

Erfahrenes Mitglied
Hallo Zusammen. :)

Ich möchte gerne für einen bestimmten Zweck Vergleichsoperatoren einsetzen.

Das ist ja auch eigentlich kein Problem bei normalen Zahlen die man vergleichen KANN.

Wie sieht es denn aus wenn man "Wörter" verleichen will?

PHP:
$Auswahl_1 = '10.5mm'; // Das wurde ausgewählt

$Array = array
(
   '10.0mm' => array(...),
   '10.5mm' => array(...),
   '20.0mm' => array(...),
   '20.5mm' => array(...),
   '30.0mm' => array(...),
   '30.5mm' => array(...),
);

$Auswahl_2 = $Auswahl_2[$Auswahl_1][0];
$Auswahl_3 = $Auswahl_3[$Auswahl_1][1];
$Auswahl_4 = $Auswahl_4[$Auswahl_1][2];

Ich möchte das man bei einer bestimmten Option nichts unter "20.0mm" auswählen KANN.

Beispiel:
PHP:
if ($Option == 'Ok' && $Auswahl_1 > '20.0mm')
{
   echo 'Fehler!';
}

Wie könnte ich das zum laufen bekommen?
 
Es wird zeichenweise verglichen. Sind die ersten Zeichen gleich, werden die nächsten verglichen

A < a
HAUS < HAUT
BAUM > ARBEIT
40mm > 20mm
 
Grundsätzlich solltest du die mm aus dem Array-Index rausnehmen

Du kannst mit scanf() die Zahl daraus extrahieren und diese vergleichen
PHP:
//Die Zahl asl Float (Komma-Zahl) in die Variable $mm extrahieren
sscanf('30.5mm', '%fmm', $mm);
//und diese prüfen
if($mm <= 40.5){
	//Kleiner als 40.5
}

Das ist auf alle Fälle am sichersten. Denn wenn du mal 40.0mm als 40mm hast, geht der Stringvergleich nicht mehr.
 
Aber denk dran, Dass der String-Vergleich nur bei 2 Vorkommastellen richtig ist. Wenn du höher gehen willst - pech gehabt
PHP:
//Der folgende Vergleich gibt true zurück. Ergo sind 20,5mm grosser als 100,5mm
'20.5mm' > '100.5mm'
Und darum, mach ein Zahlenvergleich

PHP:
//Stringvergleich : true
var_dump ('20.5mm' > '100.5mm' ? 'true' : 'false');

//Zahlenvergleich: false
sscanf('100.5mm', '%fmm', $mm);
var_dump (20.5 > $mm ? 'true' : 'false');
 

Neue Beiträge

Zurück