2017-01-03 2 views
0

Ich habe ein Array. Innerhalb dieses Arrays könnte mein Fruit_Name entweder Pear oder Apple sein, abhängig von der Schaltfläche, die ich auf der vorherigen Seite ausgewählt habe. Sagen wir, ich wähle Apple, die if-Anweisung scheint nicht zu funktionieren, aber es Echo. Es echos $FruitType und es scheint Apple zu bekommen, was meine if-Anweisung auslösen sollte und mir zeigen "Du hast es getan!", Aber meine if-Bedingung nicht. Was mache ich falsch?Wenn Bedingung gleich Array-Wert

Array

Fruit_Name = Apple-

Meine Funktion

function GetField($arr, $field) 
    { 
     $result = '  '; 
     foreach($arr as $line) 
     { 
      if (explode('=', $line) [0] == $field) 
      { 
       $result = explode('=', $line) [1]; 
      } 

     } 

     return $result; 
    } 

    $FruitType= GetField($array, 'Fruit_Name'); 

    echo $FruitType; 

    if ($FruitType == "Apple") 
    { 
     echo "You did it!"; 
    } 
    else if ($FruitType == "Pear") 
    { 
     echo "Its not Pear!"; 
    } 
+2

'if (explode ('=', $ line) [0] == $ field)' das wird nicht so funktionieren, wie du glaubst, es wird –

+0

Ich werde das untersuchen. Vielen Dank. – taji01

+0

Was Sie ein Array nennen, ist nur eine Zeichenfolge, so dass die Foreach nicht funktioniert –

Antwort

0

Wenn Strings zu vergleichen (und wirklich, sollten Sie diese mit beliebigen Datentypen tun) in php, müssen Sie Verwenden Sie die Notation ===. Das == wird nur für Zahlen verwendet, und wenn es für Strings verwendet wird, führt dies zu Problemen wie dem, dem Sie gegenüberstehen.

So sollte Ihr Code

If ($FruitType === "Apple")

und die GetField Funktion ist falsch, wie Dagon erwähnt und erläutert.