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

kev*_*out 13 php arrays

你还有什么比较两个数组($ 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)
Run Code Online (Sandbox Code Playgroud)

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

rg8*_*g88 15

你有它.只需使用array_diffarray_intersect.没有那么容易.

编辑: 例如:

$arr_1 = array_diff($arr_1, $arr_2);
$arr_2 = array_diff($arr_2, $arr_1);
Run Code Online (Sandbox Code Playgroud)

资源

  • 如果两个数组中值的顺序很重要,还要考虑[array_diff_assoc](http://www.php.net/manual/en/function.array-diff-assoc.php). (2认同)

小智 5

亲爱的简单干净的方式

$clean1 = array_diff($array1, $array2); 
$clean2 = array_diff($array2, $array1); 
$final_output = array_merge($clean1, $clean2);
Run Code Online (Sandbox Code Playgroud)