2017-01-27 2 views
0

Ich habe ein Array aus einer JSON-Datei und ein paar Zeilen aus meiner Datenbank. Mit array-search kann ich überprüfen, ob Werte von meinem $ all_results Array in meinen Datenbanken match_id Spalte gespeichert sind. Wenn Werte gefunden werden, bekomme ich den Schlüssel mit meiner $ show_key Variable erfolgreich. Nun würde ich gerne tun dies wenn Schlüssel gefunden werden und tun, dass wenn keine gefunden werden, aber ich habe keine Ahnung, wie dies zu tun ist!Vergleichen Sie PHP-Array mit SQL-Ergebnissen und etwas tun

Ich versuchte is_int, was nicht funktioniert und endete in der größer als 0 Lösung, die genau das tut, was ich will, wenn es keine gefunden, dessen Wert Schlüssel 0 wäre.

Hilfe wäre genial. Vielen Dank!

$json=file_get_contents('file.json'); 
$decode = json_decode($json,true); 
$results = $decode['data']; 

    foreach ($results as $key) 
    { 
     $all_results[]= $key['id']; 
    } 

     $pdo = new PDO('xxx'); 
     $sql = "SELECT * FROM results"; 

     foreach ($pdo->query($sql) as $row) 

     { 

      echo $show_key = array_search($row['match_id'], $all_matches).'<br/>'; 

      if (array_search($row['match_id'], $all_results) > 0) 
      { 
       // do this 
      } 
      else 
      { 
       // do that 
      } 

     } 
+0

zu sehen, warum Sie nicht über ein paar wichtige [ ‚id‘] und die Ergebnisse ausdrucken von der db und vergleichen Sie es selbst und sehen Sie, wo dort ids übereinstimmen oder nicht. – rahul

Antwort

2

PHP: array_search

Gibt den Schlüssel für Nadel, wenn es in der Anordnung, ansonsten FALSE gefunden wird.

Ersetzen Sie Ihre zustands

if (array_search($row['match_id'], $all_results) > 0) 

mit this-

if (array_search($row['match_id'], $all_results) !== FALSE) 

Diese der Schlüssel, wenn der Schlüssel und falsch gefunden wurde, zurück, wenn es nicht hat.

Auch diese Linie ist Frevels

echo $show_key = array_search($row['match_id'], $all_matches).'<br/>'; 

mit diesem Ersetzen Sie die Tasten-

echo $show_key = array_search($row['match_id'], $all_results).'<br/>'; 
+1

Kleinere Änderung, hoffe, dass es Ihnen nichts ausmacht. – RiggsFolly

+0

@RiggsFolly danke! obwohl ich es sowieso bearbeiten würde. – xRahul

+0

Vielen Dank! Geholfen. Funktioniert. – vloryan