차집합, 대칭 차집합은 구현하고자 하는 목적에 따라 각각 사용을 하면 된다.
array_diff 함수를 잘못 이해하고 사용하면 엉뚱한 결과가 나올 수 있다.
<?php
$arr1 = array('1', '2', '3', '4');
$arr2 = array('3', '4', '5', '6', '7', '8');
echo "<h3>Union(합집합)</h3>";
$union = array_unique(array_merge($arr1, $arr2));
print_r($union);
echo "<h3>Intersection(교집합)</h3>";
$intersection = array_values(array_intersect($arr1, $arr2));
print_r($intersection);
echo "<h3>Complement(차집합)</h3>";
$complement = array_values(array_diff($arr1, $arr2));
print_r($complement);
$complement = array_values(array_diff($arr2, $arr1));
echo '<br />';
print_r($complement);
echo "<h3>Symmetric difference(대칭차집합)</h3>";
$sym_diff = array_values(array_diff(array_merge($arr1, $arr2), array_intersect($arr1, $arr2)));
또는
$sym_diff = array_merge(array_diff($arr1, $arr2), array_diff($arr2, $arr1));
print_r($sym_diff);
// 처음 1개 삭제
array_shift($arr);
// 마지막 1개 삭제
array_pop($arr);
// in_array() : 배열들의 요소중에 원하는 값이 있는지를 검사
$arr = array("1", "2", "3", "4", "5");
$v = "5";
if(in_array($v, $arr)) {
echo "$v가 있음";
} else {
echo "$v가 없슴";
}
$arr = array(array(1, 2,), 3, 4, 5, array(6, 7));
if(in_array(array(1,2), $arr)) {
echo "array(1, 2) 가 포함되어 있음.";
}
is_array : 자료형이 배열인지 알아볼기위해 사용하는 함수, 배열일 경우 1, 아닐 경우 0 반환
$arr = array(1, 2, 3, 4, 5,);
echo is_array($arr); //array가 맞으므로 1 반환
?>
'Web 프로그램 > PHP 응용 및 활용' 카테고리의 다른 글
PHP to JSP (0) | 2018.04.28 |
---|---|
PHP Form 다중 체크박스 값 전달 및 POST (0) | 2018.04.02 |
PHP 배열함수 정렬 - sort, rsort, ksort, krsort, asort, arsort (0) | 2018.03.31 |
PHP 로또번호 생성 (0) | 2018.03.28 |
온라인 투표 소스 (회원관리 포함) (2) | 2017.12.23 |