从列表中删除条件

时间:2012-12-04 06:53:48

标签: php regex

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

所以list1.txt:

苹果

总线

list2.txt:

苹果

输出:

总线

2 个答案:

答案 0 :(得分:1)

你可以这样做:

// 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));

假设我们有以下文件:
list1.txt

apple
pear
bus

<强> list2.txt

pear
apple
banana

然后输出如下所示:(print_r($not_shared)

Array
(
    [0] => bus
    [1] => banana
)

答案 1 :(得分:0)

您可以这样使用:

$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);