테스트 사이트 - 개발 중인 베타 버전입니다

php 배열내 중복된 값이 있다면 한개만 삭제? 채택완료

그누하마 11년 전 조회 7,402

$test = "서울,대구,부산,대구,부산,경기";

 

이렇게 되어있습니다

 

위 변수값에서 _POST 값이 대구 일경우

 

$test = str_replace($_POST[대구],"", $test);

 

이렇게 되면 $test 내 모든 대구가 삭제 되는데요..

 

$test 변수 내에서 대구 한개값만  삭제하려고 하는데.. 방법이 없을까요???

 

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

답변 4개

채택된 답변
+20 포인트
11년 전

array_unique($array); //중복제거

 

 예) $arr = array_unique($array);

 

위 와 같이 하면 되고요~~ 해결 되셨으면 채택 부탁드려요 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

그누하마
11년 전
중복 값도 모두 출력이 되야하며 중복값중 POST 로 넘어온 ..한개만 삭제해야 합니다 ㅜㅜ
잘살아보자
11년 전
아.

대구가 두개 있기 때문에 그 중 대구를 한개만 삭제 하고 다른 한개는 그냥 두고 싶다는 뜻이네요.

$test = str_replace($_POST[대구],"", $test);
$test = str_replace(",,",",", $test);
$test.= ",".$_POST[대구];

이렇게 하시면 될것 같은데요.
잘살아보자
11년 전
$str = '서울,대구,부산,대구,부산,경기';


$apos = stripos($str, "대구");
$tmp = substr( $str, 0, $apos);
$tmpa = substr($str,$apos);
$bpos = stripos($tmpa, ",");
$tmpb = substr($tmpa, $bpos + 1);

$result = $tmp . $tmpb;
echo( $result );


위 와 같이 해도 될 것 같아요
그누하마
11년 전
답변에 슈와이님의 답글에대한 해설까지 해주셔서 정말 감사드립니다 ^^

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

11년 전

흠.. 여러 방법들이 있군요^^

정규식을 제대로 알면 편할것 같은데...ㅠㅠ

 

답변주신 모든분들 감사드립니다 ^^ 

로그인 후 평가할 수 있습니다

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

11년 전

echo preg_replace("/$city,|,$city$/",'',$test,1); 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

잘살아보자
11년 전
그누하마님 슈와이님이 올려주신 정규식 표현 정말 좋네요.

이것에 의미를 알고 싶으시면
http://sir.co.kr/bbs/board.php?bo_table=pg_tip&wr_id=14153

여기를 참고하세요.
그누하마
11년 전
답변 감사드립니다 ^^

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

편리
11년 전

의도하시는 것을 정확하게 인지한 것인지 확실치는 않은데요.. 아래와 같은 방법도 고려를 해보시기 바랍니다.

 

</p><p><?php</p><p>$str = '서울,대구,부산,대구,부산,경기';</p><p> </p><p>$haystack = explode(',', $str);</p><p> </p><p>$niddle = '대구';</p><p> </p><p>$count = 0;</p><p> </p><p>foreach($haystack as $value) {</p><p>    if($value == $niddle)</p><p>        $count++;</p><p>}</p><p> </p><p>if($count > 1)</p><p>    $result = array_unique($haystack);</p><p>else</p><p>    $result = $haystack;</p><p> </p><p>echo implode(',', $result);</p><p>?> </p><p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

그누하마
11년 전
답변 감사드립니다 ^^ 바쁘신데 답변까지 달아주시고 ㅎ
foreach 문을 사용하는 방법도 있군요 공부해 보겠습니다 ^^

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

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

로그인