将php数组与sql结果进行比较并做一些事情

时间:2017-01-27 12:29:45

标签: php mysql arrays

我有一个来自JSON文件的数组和来自我的数据库的几行。使用array-search我可以检查 $ all_results 数组中的值是否存储在我的数据库 match_id列中。

如果找到值,我会成功获取带有 $ 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
            }

        }

1 个答案:

答案 0 :(得分:2)

PHP: array_search

  

如果在数组中找到针,则返回针的键,否则返回FALSE。

替换你的病情 -

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

用这个 -

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

如果找到密钥,将返回密钥,如果没有,则返回false。

此外,这条线错了 -

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

用它替换它以查看按键 -

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