我有两个结果集:
$array1 = (0=>'name1',1=>'name2');
和
$array2 = (0=>'name',1=>'name1',2=>'name2',3=>'name4');
我想循环浏览array2并消除array1
中确实存在的任何记录由于某种原因,我无法使用此语法:
select * where not in(select ....)
对于具有多个键字段的SQL select
,您可以使用以下语法...
SELECT *
FROM CompletedTasks
WHERE (userID, taskID) NOT IN
( SELECT userID, taskID
FROM PlannedTasks
) ;
有很多方法可以解决。
您可以将两个数组合并为一个数组,然后使用array_unique过滤重复值。
其他方法是使用array_diff仅返回array2上的唯一值。
。我会像这样使用 array_diff
这就是我得到的
$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" }