PHP 배열에서 요소를 삭제하는 방법을 알아보겠습니다.
배열에서 요소를 삭제할 수 있는 방법으로는 unset, array_slice, array_shift, array_pop 함수를 사용하여 삭제할 수 있습니다.
각각의 함수마다 동작이 다르기 때문에 샘플을 확인하면서 사용 방법과 결과를 확인해 보겠습니다.
unset()
unset을 사용해 배열에서 요소를 삭제하는 방법입니다.
unset의 작성 방법을 보겠습니다.
unset(배열[index],배열[index]…)
unset 함수에는 배열과 삭제하고 싶은 값의 인덱스를 지정합니다.
여러 개 인덱스를 지정해 사용할 수 도 있습니다.
unset 함수에 배열만 지정하고 인덱스를 설정하지 않으면 모든 요소를 삭제합니다.
샘플을 보면서 unset 함수 사용 방법을 보겠습니다.
$fruits = array("apple", "banana", "orange", "grape");
unset($fruits[1],$fruits[2]);
print_r($fruits);
결과
Array
(
[0] => apple
[3] => grape
)
배열 변수 $fruits의 인덱스 1번과 2번의 요소를 삭제했습니다.
이번에는 인덱스를 지정하지 않고 실행해 보겠습니다.
$fruits = array("apple", "banana", "orange", "grape");
unset($fruits);
var_dump($fruits);
결과
NULL
키를 지정하지 않으면 모든 요소를 삭제합니다.
array_splice()
array_splice()는 배열의 요소를 삭제하거나 또는 지정한 위치의 요소의 값을 변경할 수 있는 함수입니다.
array_splice의 작성 방법을 보겠습니다.
array_splice( 배열, 삭제 시작 위치, [삭제 요소수] , [변경 값] )
3번째, 4번째 파라미터는 생략가능합니다.
샘플을 보면서 사용방법을 확인해 보겠습니다.
$fruits = array("apple", "banana", "orange", "grape");
array_splice($fruits, 1);
print_r($fruits);
결과
Array
(
[0] => apple
)
3번째, 4번째 파라미터를 생략하고 실행한 결과를 보면 지정한 시작위치부터 모든 요소를 삭제하고 있습니다.
삭제 요소수를 지정해 보겠습니다.
$fruits = array("apple", "banana", "orange", "grape");
array_splice($fruits, 1, 2);
print_r($fruits);
결과
Array
(
[0] => apple
[1] => grape
)
unset() 함수와 가장 큰 차이점으로는 결과에서 알 수 있듯이 array_splice()으로 요소를 삭제하면 배열의 요소의 인덱스를 자동으로 다시 정렬해 줍니다.
마지막으로 4번째 파라미터를 지정해 요소를 삭제하고 새로운 값을 넣는 방법을 보겠습니다.
$fruits = array("apple", "banana", "orange", "grape");
array_splice($fruits, 1, 2, "melon");
print_r($fruits);
결과
Array
(
[0] => apple
[1] => melon
[2] => grape
)
지정한 위치에 요소를 삭제하고 4번째 파라미터에 지정한 값이 추가되었습니다.
array_shift()
배열 요소의 가장 앞에 있는 값을 삭제하고 싶은 경우에 array_shift를 사용합니다.
작성 방법을 보겠습니다.
array_shift(배열)
샘플을 보면서 사용방법을 확인해 보겠습니다.
$fruits = array("apple", "banana", "orange", "grape");
print_r(array_shift($fruits));
print_r($fruits);
결과
apple
Array
(
[0] => banana
[1] => orange
[2] => grape
)
가장 앞에 있던 요소가 삭제되었습니다.
array_shift 함수는 값을 삭제하는 것처럼 보이지만 단순히 삭제를 하는 것이 아니라
배열에 가장 앞에 있는 요소를 추출하는 함수입니다.
추출한 함수는 원래 있던 배열에서 삭제됩니다.
array_pop()
배열 요스의 마지막 값을 삭제하는 경우를 보겠습니다.
array_pop(배열)
샘플을 보면서 사용방법을 확인해 보겠습니다.
$fruits = array("apple", "banana", "orange", "grape");
print_r(array_pop($fruits));
print_r($fruits);
결과
grape
Array
(
[0] => apple
[1] => banana
[2] => orange
)
배열의 마지막 요소가 삭제되었습니다.
array_pop 함수는 값을 삭제하는 것처럼 보이지만 array_shift처럼 값을 추출합니다.
배열에 마지막에 있는 요소를 추출하는 함수입니다.
추출한 함수는 원래 있던 배열에서 삭제됩니다.
댓글