중복값 제거 문의 드립니다..
본문
안녕하세요!
체크박스에서 체크한 값을 받아서 사용하는 과정에서
궁금한 사항이 있어 질문 드립니다.
그누보드 리스트 페이지에서
<input type=checkbox name=chk_wr_id[] value="<?=$wr_id?>|<?=$wr_1?>">
위와 같이 값을 두개를 보내고
받아서 사용하는 페이지에서는
$comma = "";
for ($i=0; $i<count($_POST[chk_wr_id]); $i++) {
$test = $_POST[chk_wr_id][$i];
$test = explode("|", $test);
$test1_list .= $comma . $test[0];
$test2_list .= $comma . $test[1];
}
이렇게 해서 사용 중인데요
리스트페이지에서 체크박스를 여러게 선택했을때
$test1_list 나
$test2_list 의 값이 예로
$test2_list = '사과,배,감,귤,사과,사과,키위,귤,딸기';
일경우에 중복된 값이 있다면 1개만 표기하려고 하는데 가능한가요
위 값이 아래처럼 나오게 하고 싶습니다.
$test2_list = '사과,배,감,귤,키위,딸기';
여기저기 검색할때
php 중복제거로 검색하니
array_unique($array)
이런글이 대부분이여서 아래처럼 했는데,
$test2_list = array_unique($test2_ list)
에러가 납니다.
Warning: array_unique() [function.array-unique]: The argument should be an array in .........
질문이 제대로 됐는지 모르겠습니다!
답변 부탁드릴께요!!
답변 1
$temp=explode(",",$test2_list);
$temp=array_unique($temp);
$test2_list=implode(",",$temp);
array_unique 함수는 배열에만 적용됩니다.
일단 구분자를 기준으로 explode 로 배열로 만든다음에..
임시 변수에 저장합니다.
임시 변수 ($temp) 에 저장된 배열을 array_unique 를 통해서 중복을 제거하고
다시 implode 함수를 통해 "," 구분자로 배열을 연결해서 원래 텍스트로 만들어준후
$test_list 에 대입합니다.