所以我有一个有趣的问题。我有两个userId和contractId数组,我想比较以查看是否有任何结果匹配。然后只显示不匹配的那些。任何帮助将不胜感激。
//select all users and contracts possibilities
$rQ = "SELECT users.userId AS userId, cId AS contractId, name, cTitle FROM contracts, users WHERE users.roleId = contracts.roleId ORDER BY users.userId ASC ";
$rR = mysql_query($rQ);
$a = mysql_fetch_assoc($rR);
//selects current signatures in signatures table
$rQ1 = "SELECT userId, contractId FROM signatures ORDER BY userId ASC ";
$rR1 = mysql_query($rQ1);
$a1 = mysql_fetch_assoc($rR1);
示例:if
$a['userId'] != $a1['userId'] && $a['contractId'] != $a1['contractId']
然后
echo $a['name'] . $a['cTitle']
答案 0 :(得分:1)
使用array_diff()http://php.net/manual/en/function.array-diff.php比较数组的差异很方便,并返回数组1中不在数组2中的结果列表然后再次运行它反过来你将结束最多只有2个项目数组,这些项目只出现在您的父数组之一而不是另一个数组中。
然后,您可以进行数组合并以获得一个不在其中的整个术语数组。
答案 1 :(得分:0)
如果您需要使用PHP来执行以下操作,则可以执行以下操作:
foreach($a as $value ){
if(!in_array($value,$a1)){
$value1 = array_search($value,$a1);
if(($value['userId']!=$value1['userId']) && (($value['contractId']!=$value1['contractId']) ))
print_r($value);
}