匹配来自PHP Array的数据并显示不匹配的内容

时间:2013-10-31 20:29:47

标签: php mysql sql arrays

我有这个PHP代码,它从数据库中选择并创建一个包含数据的数组

$sql="SELECT * from voip_emergency_services_data ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
if(mysql_num_rows($rs) > 0)
{
    while($result=mysql_fetch_array($rs))
    {
        $ListData1[] = $result["number"];
    }
}

这个在不同的表上执行相同的操作,也连接到不同服务器上的不同数据库

$sql="SELECT * from channel_did ";
$rs=mysql_query($sql,$pbx01_conn) or die(mysql_error());
if(mysql_num_rows($rs) > 0)
{
    while($result=mysql_fetch_array($rs))
    {
        $ListData2[] = $result["did"];
    }
}

如何匹配两个数组中的数据,然后显示不匹配的数据

例如,channel_did表格中的每一行都应该与voip_emergency_services_data列中的一行基于did列和number

匹配

2 个答案:

答案 0 :(得分:1)

基于这个问题,这给出了1中但不是2中的内容以及2中但不是1中的内容:

$notIn1 = array_diff($ListData2, $ListData1);
$notIn2 = array_diff($ListData1, $ListData2);

echo implode(',', $notIn1) . ' are in list 2 but not 1';
echo implode(',', $notIn2) . ' are in list 1 but not 2';

foreach($notIn1 as $value) {
    echo "$value is not in list 1";
}

答案 1 :(得分:0)

您可以使用一些可以解决此问题的功能。

array_diff($array1,$array2)会找到$ array1但不是$ array2的所有项目。

array_intersect($array1,$array2)将找到$ array1和$ array2中的所有项目。 $ array1将是要比较的主数据,因此array2可以包含不在$ array1中的项。