Php 检查mysql数据库中的值是否存在于多维数组中
我在mysql数据库中有多个ID。我想知道数据库中是否有多维数组中不存在的ID。对于多维数组中不存在的每个ID,需要删除该行。下面的代码是我到目前为止的代码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;
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'");
}