2012-12-04 79 views
0

想象一下,如果有两个列表,并且两个列表中有一些相似的项目。 我想的第三列表,其中任何产品之间共享的前两个被除去从列表中有条件地删除

所以list1.txt:

苹果

总线

list2.txt:

apple

输出:

总线

回答

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 
) 
+0

我绑这个,它所做的就是输出单词'array' –

+0

@NarisaGlory当然,因为'$ not_shared'是一个数组。要输出一个数组,你可以使用'print_r()'或'var_dump()'。你也可以使用'implode()'将数组转换回字符串。 – MarcDefiant

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