php - 如何比较从数据库中检索的两个数据数组?

标签 php sql mysqli

我有两个数组。在一个数组中,我存储一张表中的数据。我将另一个表中的数据存储在另一个数组中。我想比较两个数组的数据。如果第一个数组的数据在第二个数组中,我想继续。我该如何执行此操作?

我尝试了以下代码,但它没有工作,尽管 array1 数字存在于 array2 中:

$x = "SELECT * FROM table1";
$data1 = mysqli_query($link, $x);
$dat1 = array()
while($row1= mysqli_fetch_array($data,MYSQLI_ASSOC))
{
  $dat1[] = $row1;
  $f1 = $row1['fid'];
}

$y = "SELECT * FROM table2";
$data2 = mysqli_query($link, $y);
$dat2 = array()
while($row2= mysqli_fetch_array($data2,MYSQLI_ASSOC))
{
  $dat2[] = $row2;
  $f2 = $row2['fid'];
}

if(in_array($dat1,$dat2))
{
  // if exists proceed
}
else
{
  // if not show error
}

最佳答案

这可以通过 SQL 来完成。

检查 table1 中的所有 fids 是否都在 table2 中:

SELECT COUNT(a.fid) FROM table1 AS a WHERE a.fid IN (SELECT b.fid FROM table2 AS b)

SELECT COUNT(*) FROM table1

如果两个值相等,那么table1中的所有fids都在table2中。

关于php - 如何比较从数据库中检索的两个数据数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24604771/

相关文章:

php - YII2平面阵列

php - 需要将 IDX MLS 集成到网站中

php - 下订单并接收附带的reservation_id SQL、PHP、html5 表单

php - Unix 时间戳不起作用

mysql - sql语句的接受率

php - 从 MySQL 切换到 MYSQLi - 循环不起作用

php - 为什么我必须使用 set_charset ("utf8") 即使一切都是 utf-8 编码的? (MySQLi-PHP)

php - 无法将值插入数据库

php - 从本地主机同步/传输数据库到远程太慢

mysql - 即使我没有使用事务,也会得到 "Lock wait timeout exceeded; try restarting transaction"