2017-10-03 1 views
0
$klasseinput = strtoupper(trim($_POST["klasseliste"])); 
$data = file('student.txt'); 
$data = array_filter($data); 
foreach($data AS $row){ 
    $student[] = explode(';', $row); 
} 
    $antall = count($student); 
    for ($i = 0; $i < $antall; $i++){ 
     if($klasseinput == $student[$i][3]){ 
      print('<tr><td>'.$student[$i][0]."</td><td>".$student[$i][1]."</td><td>".$student[$i][2]."</td><td>".$student[$i][3]."</td></tr>"); 
     } 
    } 


/////////STUDENT.txt////////// 
    ph;petter;hanssen;IT1 
    gb;Geir;Bjarvin;IT2 
    mj;Marius;Johansen;IT3 
///////////////////////////// 

Ich versuche, ein Eingabeformular mit einem Element in der Mehrdimensionen Array, aber auch tho die Variable aus dem Eingabefeld zu vergleichen, ist genau der gleiche wie der Wert in der Array, es passiert nicht die if-Prüfung.Vergleichen String von Eingabefeld mit dem Wert in Multidimension Array

$ student [0] [3] = IT1

$ student [1] [3] = IT2

$ student [2] [3] = IT3

+0

trimmen Sie den Wert für \ t \ n if ($ klasseneinput == trimmen ($ student [$ i] [3])) { –

+0

Vielen Dank! Über die Zeilenschaltung vergessen. –

Antwort

0

Wenn Sie gemacht haben Sicher, es gibt keinen Leerraum, der den Vergleich verdirbt, dann könnte eine Funktion wie diese nützlich sein, um die Strings auf beiden Seiten des Vergleichs zu betrachten. Sie könnten feststellen, dass falsche Zeichen Probleme verursachen.

function hexdump($str) 
{ 
    for($i=0; $i<strlen($str);$i++) 
    { 
     echo "[$i] [".bin2hex($str[$i])."] [".$str[$i]."]<br />"; 

    } 
} 

Zum Beispiel kann die aus der Datei gelesene Zeichenfolge CR LF-Zeichen enthalten. Sie können sie mit str_replace() loswerden.

0

Dank Ravinder Reddy für die Antwort, die einfach und funktionierte gut für mich war:

"schneiden Sie den Wert für \ t \ n if ($ klasseinput == trim ($ student [$ i] [3])) {"