Php 检查mysql数据库中的值是否存在于多维数组中

Php 检查mysql数据库中的值是否存在于多维数组中,php,mysql,arrays,Php,Mysql,Arrays,我在mysql数据库中有多个ID。我想知道数据库中是否有多维数组中不存在的ID。对于多维数组中不存在的每个ID,需要删除该行。下面的代码是我到目前为止的代码 function multi_array_search($search_for, $search_in) { foreach ($search_in as $element) { if ( ($element === $search_for) ) { return true;

我在mysql数据库中有多个ID。我想知道数据库中是否有多维数组中不存在的ID。对于多维数组中不存在的每个ID,需要删除该行。下面的代码是我到目前为止的代码

function multi_array_search($search_for, $search_in) {
    foreach ($search_in as $element) {
        if ( ($element === $search_for) ) {
            return true;
        } elseif (is_array($element)) {
            $result = multi_array_search($search_for, $element);
            if($result == true)
                return true;
        }
    }
    return false;
}

$output = mysql_query("SELECT id FROM ads");
while ($g = mysql_fetch_array($output)) {
    echo multi_array_search("$g", $arr) ? 'Found' : 'Not found';
}
我认为上面的代码不符合我的要求

资料: $arr看起来像:

Array ( 
    [0] => Array ( 
        [url] => http://
        [id] => 752 
    ) 
    [1] => Array ( 
        [url] => http://
        [id] => 758 
    )
)

我现在尝试了一些解决方案,但没有一个有效:(

一切似乎都很好。只需几次更新,即可从
elseif
中删除不需要的代码,并在
elseif
条件中再添加一个检查
!empty

function multi_array_search($search_for, $search_in) {
    foreach ($search_in as $element) {
        if ($element === $search_for){
            return true;
        }elseif(is_array($element) && !empty($element)){
            $result = multi_array_search($search_for, $element);
        }
    }
    return false;
}
$output = mysql_query("SELECT id FROM ads");
while ($g = mysql_fetch_array($output)) {
    echo multi_array_search("$g", $arr) ? 'Found' : 'Not found';
}
希望会有帮助

$removeid=array();
$idarray is the  multi dimensional array you want to check your database id with.
$result = 'store your databse id here in the form of an array';
foreach ($result as $key => $value) {
    $result=$value;
    if(!empty($result))
    {
    foreach ($idarray as $key => $value) { 
    if ($value["id"] != $result) {
        $removeid=$key;
        }
    }
   }
}

现在
$removeid
包含要从数据库中删除的id

以及您认为它不正确的原因?有错误吗?现在无法测试它,我不确定$g是数据库中的单个id还是id列表?甚至不测试一次就发布问题。-1
          $un_array = array();
          foreach ($array as $h) {
              $id = $h['id'];
              array_push($un_array, $id);
          }
          $db_array = array();
          $output   = mysql_query("SELECT id FROM account WHERE account='$username'");
          while ($g = mysql_fetch_assoc($output)) {
              $id = $g['id'];
              array_push($db_array, $id);
          }
          $result = array_diff($db_array, $un_array);
          foreach ($result as $r) {
              mysql_query("DELETE FROM account WHERE id='$r'");
          }