728x90

차집합, 대칭 차집합은 구현하고자 하는 목적에 따라 각각 사용을 하면 된다.

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 반환

?>

블로그 이미지

Link2Me

,