如何比较两个数组并从一个数组中删除匹配的元素以进行下一个循环?

2022-08-30 22:07:17

否则,您如何比较两个数组($A和$B)并减少第一个数组中的匹配元素,以便为数组$A的下一个循环做准备?

$A = array(1,2,3,4,5,6,7,8);
$B = array(1,2,3,4);

$C = array_intersect($A,$B);  //equals (1,2,3,4)
$A = array_diff($A,$B);       //equals (5,6,7,8)

这是最简单的方法,还是有一种方法可以使用我没有想到的另一个函数?我的目标是有一个可以循环访问的数组,拉出相关内容组(我已经在其他地方定义了这些关系),直到数组返回 false。


答案 1

你得到了它。只需使用 或 .没有比这更容易的了。array_diffarray_intersect

编辑:例如:

$arr_1 = array_diff($arr_1, $arr_2);
$arr_2 = array_diff($arr_2, $arr_1);


答案 2

亲爱的简单和干净的方式

$clean1 = array_diff($array1, $array2); 
$clean2 = array_diff($array2, $array1); 
$final_output = array_merge($clean1, $clean2);