채택완료

php 중복 문자 제거

2020-01-09 (목) 19:08:24 2,752

만약 $a = "1,2,3"이있고

$b = "2,3,4" 가 있다면

2와 3을 제거하고 1,4만 남게 하려면 어떻게 해야할까요?

|

답변 1개

채택된 답변
+20 포인트
2020-01-09 (목) 19:27:48

여집합을 구하는거군요.

php함수중에

array_diff 는 차집합

array_intersect 는 교집합 입니다.

불행히도 php에 여집합 함수는 없습니다.

드모르간 법칙을 적용해서 구해봅니다.

https://ko.wikipedia.org/wiki/%EC%97%AC%EC%A7%91%ED%95%A9

Copy
$arr_a = explode(",", $a);

$arr_b = explode(",", $c);

 

//여집합 

$arr_c = array_merge(
            array_diff($arr_a, $arr_b),         // 1
            array_diff($arr_b, $arr_a)          //4
        );                              

 //  $arr_c = 1  4

 

echo implode(",", $arr_c);

//result = 1,4

 

//교집합은

$arr_d = array_intersect($arr_a, $arr_b);  //2, 3

 

//합집합은

$arr_e = array_merge(
            array_intersect($arr_a, $arr_b),   //2, 3
            array_diff($arr_a, $arr_b),         // 1
            array_diff($arr_b, $arr_a)          //4
        );   //2, 3, 1, 4

답변을 작성하려면 로그인이 필요합니다.