繁体   English   中英

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

[英]How to compare two arrays and remove matching elements from one for the next loop?

您还可以如何比较两个数组($ 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为止。

知道了 只需使用array_diffarray_intersect 没有比这容易的多了。

编辑:例如:

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

资源

亲爱的简便方法

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

另请参见array_unique 如果将两个数组连接起来,它将抽取所有重复项。

嘿,甚至更好的解决方案: array _ uintersect。 这使您可以按array_intersect比较数组,但随后可以将数据与回调函数进行比较。

试试这个

$a = array(0=>'a',1=>'x',2=>'c',3=>'y',4=>'w');
$b = array(1=>'a',6=>'b',2=>'y',3=>'z');
$c = array_intersect($a, $b);

$result = array_diff($a, $c);
print_r($result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM