중복값 제거
<?php
$test = array("1", 2", "2", "3", "4", "4", "5", "5", "5");
$test2 = array_unique($test);
?>
요소삭제
array_splice()
- 배열을 잘라내는 기능을 이용하여 값을 삭제
- 1개 값만 삭제하거나 연속하는 값을 삭제할 때 유용
$target = array('a', 'b', 'c');
//삭제실행
$split = array_splice($target, 1, 1);
//삭제결과
var_dump($target);/*array(2) { [0]=> string(1) "a" [1]=> string(1) "c" }*/
//인수로 전달한 값도 갱신되어 있다
var_dump($split);/*array(1) { [0]=> string(1) "b" }*/
unset()
array_values()
- 배열을 지정하여 unset으로 삭제하는 방법
- 복수의 값의 삭제에 유용
- unset으로 삭제하는 것 만으로는 index가 갱신되지 않으므로 array_values로 index를 채움
$target = array('a', 'b', 'c');
//삭제실행
unset($target[1]);
//실행결과
//index의 1을 삭제했기 때문에 index 번호가 이어지지 않는다
var_dump($target);/*array(2) { [0]=> string(1) "a" [2]=> string(1) "c" }*/
//index 채우기
$target = array_values($target);
//index의 결번이 채워져 번호가 이어진다.
var_dump($target);/*array(2) { [0]=> string(1) "a" [1]=> string(1) "c" }*/
$target = array('a', 'b', 'c', 'd');
foreach ($target as $key => $val) {
if(/*삭제조건*/){
//삭제실행
unset($target[$key]);
}
}
//Index 채우기
array_values($target);
1개 삭제라면 array_splice();가 편리하다. 단, 복수 삭제의 경우는 array_splice();로 삭제하면 삭제와 인덱스를 채우기는 작업이 동시에 해줘야 하는 경우가 있다. unset();으로 한번에 삭제후 array_value();로 index를 전부 채우는 방법을 추천.
array_diff()
array_values()
- index값이 아닌 요소를 지정하여 삭제
- 삭제후에 index를 채우는 작업이 필요
array_diff는 제1 인수의 배열과 제2 인수 이후의 배열을 비교하여 제1인수의 요소 중 다른 배열에는 존재하지 않는 값만 반환한다
unset();
- key를 이용하여 연상배열로부터 삭제
$target = array('key1' => 'a', 'key2' => 'b', 'key3' => 'c'); //삭제실행 unset($target['key2']); //삭제결과 var_dump($target);/*array(2) { ["key1"]=> string(1) "a" ["key3"]=> string(1) "c" }*/
출처: https://pikabu.tistory.com/86 [피카부]
'[ Web 관련 ] > php' 카테고리의 다른 글
PHPMailer, XPertMailer(XPM4) 메일 보내기 (0) | 2019.12.26 |
---|---|
php 로그 파일 만들기 (날짜별로 파일 생성 + 삭제) (0) | 2019.12.26 |
셀렉트 박스 순차적으로 선택 (동적 셀렉트박스) + php (0) | 2019.11.19 |
cURL POST전송, JSON리턴, Proxy환경 (0) | 2019.08.08 |
php & 비트연산자 (0) | 2019.07.31 |