从mysqli数据库匹配并查找数组中的所有值

时间:2018-11-05 11:47:00

标签: mysql arrays database mysqli

我有一个值类似

的数组
$slugs= array('abraham_lincoln','alan_watts','albert_camus','anne_frank','a_p_j_abdul_kalam','aristotle','arnold_schwarzenegger','audrey_hepburn','ayn_rand','barack_obama','benjamin_franklin','bill_gates','bob_dylan','bob_ross','brene_brown','bruce_lee','bryson_tiller','carl_sagan','chanakya','charles_bukowski','charlie_chaplin');

我想检查数据库中是否存在相同的子段。

$selectslug="SELECT `slug` FROM `authors_list`";
$done=mysqli_query($con, $selectslug )or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR);

单子弹来自

foreach($slugs as  $slug)
{ echo $slug; }

来自DB的一个子弹来了

foreach($done as  $data)
{ echo $data;}

那么我该如何使用下面的代码

if (in_array($slug, $data))
{
      echo $slug." Found<br />";
      }
    else
      {
      echo $slug." Match not found<br />";
}   

是否重复$ slug或$ data的次数?

1 个答案:

答案 0 :(得分:0)

您可以简单地使用array_intersect来检索数据库中的段,然后在foreach中回显。

$existanceSlugs = array_intersect($slugs, $done);

foreach($existanceSlugs as $value) {
    echo $value;
}

如果您想获取数据库中没有的子弹,只需使用array_diff php函数。