[PHP] 배열에서 중복되는 값이 있으면 중복 제거하기
제목에서 의미 전달이 명확하지 않은데 주어진 배열에서 사용자가 지정한 값이 배열에 존재하고 중복되면 중복되는 값을 제거하고 배열에 그 값이 존재하지 않으면 중복을 제거하지 않는 것이다. 아무래도 코드를 예로 드는 것이 더 확실할 것 같다.
<?php
$haystack = array('철수','영희','진수','성희','철수');
$niddle = '철수';
$count = 0;
foreach($haystack as $value) {
if($value == $niddle)
$count++;
}
if($count > 1)
$result = array_unique($haystack);
else
$result = $haystack;
echo implode(',', $result);
?>
$haystack에 주어진 배열이 있고 $haystack 중에 $niddle 값에 해당하는 값이 중복되면 $haystack 배열의 중복 값을 제거하고 그렇지 않으면 그대로 출력하는 것이다. $niddle 값이 철수이면 철수는 배열에서 중복 되기 때문에 중복 제거 후 철수,영희,진수,성희 라는 값이 마지막에 출력된다. 만약 $niddle 값이 영희라면 배열에 속해있지만 중복은 되지 않기 때문에 중복제거는 필요없고 원래 값인 철수,영희,진수,성희,철수 를 출력하게 된다. $niddle 값이 배열에 속하지 않는 성호라는 값이면 역시 원원래 값 그대로 출력되게 된다.