我有两个结果集:
$array1 = (0=>'name1',1=>'name2');
和
$array2 = (0=>'name',1=>'name1',2=>'name2',3=>'name4');
我想遍历array2并消除array1中存在的任何记录
出于某种原因,我不能使用这种语法:
select * where not in(select ....)
答案 0 :(得分:0)
对于具有该键的多个字段的SQL select
,您可以使用以下语法...
SELECT *
FROM CompletedTasks
WHERE (userID, taskID) NOT IN
( SELECT userID, taskID
FROM PlannedTasks
) ;
答案 1 :(得分:0)
有很多方法可以解决这个问题。
您可以将两个数组合并为一个,然后使用array_unique过滤重复值。
其他方法是使用array_diff仅返回array2而不是array1的唯一值。
我会像这样使用$array1 = ['name1', 'name2', 'surname2', 'surname3'];
$array2 = ['name', 'name1', 'name2', 'name4', 'surname', 'surname3', 'surname2'];
var_dump(array_diff($array2, $array1));
array(3) { [0]=> string(4) "name" [3]=> string(5) "name4" [4]=> string(7) "surname" }
这就是我得到的
ms