Php 从列表中有条件地删除

Php 从列表中有条件地删除,php,regex,Php,Regex,想象一下,如果有两个列表,并且这两个列表有一些相似的项。 我想要第三个列表,其中删除前两个列表之间共享的所有项目 因此,list1.txt: 苹果 梨 公共汽车 list2.txt: 苹果 梨 输出: 总线您可以这样做: // read both files into an array (each line is an element) $list1 = file("list1.txt", FILE_IGNORE_NEW_LINES); $list2 = file("list2.txt", FI

想象一下,如果有两个列表,并且这两个列表有一些相似的项。 我想要第三个列表,其中删除前两个列表之间共享的所有项目

因此,list1.txt:

苹果

公共汽车

list2.txt:

苹果

输出:


总线

您可以这样做:

// read both files into an array (each line is an element)
$list1 = file("list1.txt", FILE_IGNORE_NEW_LINES);
$list2 = file("list2.txt", FILE_IGNORE_NEW_LINES);

$merge = array_merge($list1, $list2);
$intersect = array_intersect($list1, $list2);
$not_shared = array_values(array_diff($merge, $intersect));
$arr_result = array_unique( array_merge($arr_1, $arr_2) );
假设我们有以下文件:
list1.txt

apple
pear
bus
pear
apple
banana
list2.txt

apple
pear
bus
pear
apple
banana
然后输出如下所示:(
print\r($not\u shared)

您可以这样使用:

// read both files into an array (each line is an element)
$list1 = file("list1.txt", FILE_IGNORE_NEW_LINES);
$list2 = file("list2.txt", FILE_IGNORE_NEW_LINES);

$merge = array_merge($list1, $list2);
$intersect = array_intersect($list1, $list2);
$not_shared = array_values(array_diff($merge, $intersect));
$arr_result = array_unique( array_merge($arr_1, $arr_2) );
您可以执行以下操作:

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

我绑定了这个,它所做的就是输出单词“array”@NarisaGlory当然,因为
$not_shared
是一个数组。要输出数组,可以使用
print\u r()
var\u dump()
。您还可以使用
内爆()
将数组转换回字符串。