PHP 배열 요소 삭제 unset, array_splice, array_shift, array_pop 사용 방법

PHP 배열에서 요소를 삭제하는 방법을 알아보겠습니다.

배열에서 요소를 삭제할 수 있는 방법으로는 unsetarray_slicearray_shiftarray_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처럼 값을 추출합니다.

배열에 마지막에 있는 요소를 추출하는 함수입니다.

추출한 함수는 원래 있던 배열에서 삭제됩니다.

댓글