728x90
반응형
■ PHP 배열 중복값 제거 / 다차원 배열 중복값 제거 array_unique()
■ 사용법
array_unique ( array $array , int $flags = SORT_STRING )
$array - 배열
$flags - 다음 값을 사용하여 정렬 동작을 수정하는 데 사용할 수 있음 (선택적 두 번째 매개 변수)
- SORT_REGULAR -일반적인 항목 비교 (유형 변경 금지)
- SORT_NUMERIC -항목을 숫자로 비교
- SORT_STRING -항목을 문자열로 비교
- SORT_LOCALE_STRING -현재 로케일에 따라 항목을 문자열로 비교합니다.
■ 1차원 배열 중복값 제거
$tmpArray = array( "apple", "banana", "tomato" , "strawberry" , "lemon", "apple", "banana" );
print_r($tmpArray);
// Array ( [0] => apple [1] => banana [2] => tomato [3] => strawberry [4] => lemon [5] => apple [6] => banana )
$newArray = array_unique($tmpArray);
print_r($newArray);
// Array ( [0] => apple [1] => banana [2] => tomato [3] => strawberry [4] => lemon )
■ 다차원 배열 중복값 제거
// 예제 배열
$tmpArray[] = array(
"color" => "red"
, "name" => "apple"
);
$tmpArray[] = array(
"color" => "yellow"
, "name" => "banana"
);
$tmpArray[] = array(
"color" => "red"
, "name" => "tomato"
);
$tmpArray[] = array(
"color" => "red"
, "name" => "apple"
);
echo "<xmp>";
print_r($tmpArray);
echo "</xmp><br>";
/*
Array
(
[0] => Array
(
[color] => red
[name] => apple
)
[1] => Array
(
[color] => yellow
[name] => banana
)
[2] => Array
(
[color] => red
[name] => tomato
)
[3] => Array
(
[color] => red
[name] => apple
)
)
*/
# 해결법 1
$newArray = array_map("unserialize", array_unique(array_map("serialize", $tmpArray)));
# 해결법 2 (PHP 5.2.9 이상부터 사용 가능)
$newArray = array_unique($tmpArray, SORT_REGULAR);
// 해결법 1
$newArray = array_map("unserialize", array_unique(array_map("serialize", $tmpArray)));
// 해결법 2 (PHP 5.2.9 이상부터 사용 가능)
$newArray = array_unique($tmpArray, SORT_REGULAR);
echo "<xmp>";
print_r($newArray);
echo "</xmp><br>";
/*
// color가 red고 name이 apple인 중복값이 삭제됨
Array
(
[0] => Array
(
[color] => red
[name] => apple
)
[1] => Array
(
[color] => yellow
[name] => banana
)
[2] => Array
(
[color] => red
[name] => tomato
)
)
*/
728x90
반응형
'PHP' 카테고리의 다른 글
[PHP] javascript escape 문자열 php unescape / escape() unescape() / 한글깨짐 (1) | 2021.03.23 |
---|---|
[PHP] 배열 값 가져오기/반환 array_keys(), array_values() (0) | 2021.02.02 |
[PHP] 문자열 일부 자르기 substr() (0) | 2021.01.18 |
[PHP] 해당 월의 마지막 날짜(일자) 구하기 strtotime() (0) | 2021.01.18 |
[PHP] 배열(Array) 한줄로 변환 implode() (0) | 2021.01.15 |