我将列表作为php数组。
1
2
3
4
5
我想获取不满足mysql查询的元素列表。 (即mysql没有与所需的db列匹配的数组值)。 db列:db_value假设有以下内容。
1
3
5
8
此处$output
提供匹配的查询输出。
1
3
5
我需要补充。
2
4
这是我的代码:
<?php
foreach ($array as $value)
{
$query = "SELECT * FROM db WHERE db_value="$value";";
$result = $conn->query($query);
while($row = $result->fetch_array())
{
$output=$row[db_value];
}
}
?>
答案 0 :(得分:2)
第一种方法
$listArray = [1, 2, 3, 4, 5]; // our list which is to be match from db
$myArray = implode(",", $listArray); // array to string
$query = "SELECT * FROM db WHERE db_value NOT IN ($myArray)";
现在$query
将返回所需的输出
第二种方法
$query = "SELECT * FROM db"; // get all from database
$db_value = array_column($query['db_values']); // suppose $query have database output
现在使用array_diff()函数
在两个数组之间获得不同$result = array_diff($db_value, $listArray); // gives you desired output