집합처리는 데이타 처리시 빈번히 알고리즘 중에 하나입니다.
QnA에 답변한 내용이 아까워서 공유합니다.
만약 $a = "1,2,3"이있고
$b = "2,3,4" 가 있다면
2와 3을 제거하고 1,4만 남게 하려면 어떻게 해야할까요?
배열 $a, $b 의 여집합을 구하는 문제입니다.
php함수중에
array_diff 는 차집합
array_intersect 는 교집합 입니다.
php에 여집합 함수는 없습니다. 집합 연산을 통해서 구할수 있습니다.
A, B의 여집합은 (A - B) + (B - A) 입니다.(아마도 맞을겁니다.)
[code]
$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
[/code]
댓글 5개
게시글 목록
| 번호 | 제목 |
|---|---|
| 17657 | |
| 17655 | |
| 17654 | |
| 17653 |
JavaScript
ThreeJS - 3D Bar and Progress Bar
1
|
| 17652 |
node.js
RAM점유크기에 의한 노드서버관리
|
| 17651 |
JavaScript
Javascript Undo, Redo 기능 구현하기
|
| 17650 | |
| 17642 |
node.js
nodejs서버가 사용중인 메모리에 대한 로그
|
| 17633 |
node.js
node.js에서 스케쥴링작성
8
|
| 17632 | |
| 17631 |
MySQL
InnoDB와 MyISAM의 우단점
|
| 17630 | |
| 17628 |
JavaScript
자바스크립트 기반으로 HTML Canvas에 이미지를 불러들여 테두리색입히기
|
| 17624 | |
| 17623 | |
| 17620 |
node.js
tcp소켓과 websocket 의 비교
2
|
| 17618 |
JavaScript
JavaScript로 이미지의 부분 영역을 따내기
|
| 17617 | |
| 17614 | |
| 17612 | |
| 17611 | |
| 17610 | |
| 17609 | |
| 17608 |
node.js
Node.js로 지속적인 핑 결과를 파일로 저장
|
| 17607 |
정규표현식
특수문자 제거, 우리글짜가 있는지 체크
|
| 17604 |
node.js
Node.js에서 PDF 파일의 페이지 수를 얻기
|
| 17603 | |
| 17602 |
node.js
Node.js로 워터마킹 기능을 구현하는 방법
|
| 17600 | |
| 17594 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기