2012-12-04 3 views
0

두 개의 목록이 있고 두 개의 목록에 유사한 항목이있는 경우를 상상해보십시오.목록에서 조건부 삭제

사과

버스

list2.txt :

를 제가 처음 두가 너무 list1.txt

을 제거 사이의 아이템 공유 제리스트 할

사과

출력 :

버스

답변

1

당신은 이런 식으로 그것을 할 수 :

apple 
pear 
bus 
list1.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)); 

우리는 다음과 같은 파일이 있다고 가정하자

출력은 다음과 같을 것입니다 그리고

pear 
apple 
banana 

list2.txt : (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);