2016-08-07 16 views
0

Ich verwende einen Web-Service, um Produktdetails zu erhalten. Ich möchte zwei Werte vergleichen und, wenn sie gleich sind, "GEFUNDEN" drucken. Aus irgendeinem Grund bekomme ich nichts.Zeichenkette durch Vergleich mit Werten finden

Das Problem ist mit dem letzten IF:

if ($product['ProductId'] == $paxServices['ProductId']) 

Dies ist der Ausgang:

paxProID:332 ?? pro:-1 
paxProID:332 ?? pro:332 
paxProID:332 ?? pro:6 
paxProID:6 ?? pro:-1 
paxProID:6 ?? pro:332 
paxProID:6 ?? pro:6 

Wie Sie sehen können, gibt es 2 gleiche Zahlen: 332 (zweite Reihe) und 6 (die letzte Zeile)

der PHP-Code:

foreach ($pnrPaxsXml AS $i => $pax) 
{ 
    if ($pax['ID'] == $_GET['paxID']) 
    { 
     foreach ($pax->Order AS $i => $paxServices) 
     { 
      foreach ($pnrProductsXml AS $i => $product) 
      { 
       echo "paxProID:".$paxServices['ProductId']."<>pro:".$product['ProductId']."<br />" ; 

       if ($product['ProductId'] == $paxServices['ProductId']) 
        echo "FOUND<br />"; 
      } 
     }    
    } 
} 

Antwort

0

ändern Sie den Code auf diese Weise

if (intval($product['ProductId']) === intval($paxServices['ProductId'])) 
       echo "FOUND<br />"; 
     } 
+0

Dies bedeutet, dass die Bedingung auch überprüfen, ob die Werte den gleichen Typ haben. Ich verwende nur "==", also überprüfe ich, ob der Wert gleich ist, und das bedeutet weniger Bedingungen ... – Roi

+0

Sie konvertieren gerade beide in int-Typ, so dass Sie vergleichen können – coder

Verwandte Themen