2017-01-27 112 views
0

我有一個數組來自JSON文件和數據庫中的幾行。使用array-search我可以檢查我的$ all_results數組中的值是否存儲在我的數據庫match_id列中。將php數組與sql結果進行比較並執行某些操作

如果找到值,我會獲得密鑰,我的$ show_key變量成功。現在,我想做到這一點當發現鑰匙和這樣做如果沒有發現,但我不知道如何做到這一點!

我試圖is_int,不工作,並在大於0解決方案告終,這不正是我想要什麼,如果有不會是一個發現價值,其關鍵是0

幫助會很棒。 非常感謝!

$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

你爲什麼不打印的幾個關鍵[「身份證」],結果從數據庫,並自己比較它,看看那裏ids匹配與否。 – rahul

回答

2

PHP: array_search

如果在數組中,否則爲FALSE返回針的關鍵。

更換您的條件 -

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

與這 -

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

這將返回關鍵如果密鑰已被發現和假,如果它沒有。

而且,這條線是錯誤車道

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

這個替換它來查看鍵 -

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

稍作修改,希望你不要介意。 – RiggsFolly

+0

@RiggsFolly謝謝!儘管我打算編輯它。 – xRahul

+0

非常感謝!有幫助。作品。 – vloryan

相關問題