PHP에서 unset() 함수를 사용하면 배열의 특정 요소를 간단하게 삭제할 수 있습니다. 이 함수는 삭제하고자 하는 요소의 인덱스를 인자로 전달받아 해당 요소를 배열에서 제거하며, 별도의 값을 반환하지 않습니다.
예제 코드
<?php
$my_array = array("Joe", "Ben", "Mary", "Barun", "Sona", "Mona");
unset($my_array[4]);
print_r("요소를 삭제한 후의 배열은 다음과 같습니다.");
print_r($my_array);
?>
실행 결과
요소를 삭제한 후의 배열은 다음과 같습니다.Array ( [0] => Joe [1] => Ben [2] => Mary [3] => Barun [5] => Mona )
코드 설명
먼저 여러 개의 문자열 요소를 담은 배열을 정의합니다.
$my_array = array("Joe", "Ben", "Mary", "Barun", "Sona", "Mona");
이어서 unset() 함수에 삭제할 요소의 인덱스를 지정하여 호출합니다. 위 예제에서는 인덱스 4에 해당하는 "Sona"가 삭제 대상입니다. 마지막으로 print_r()을 사용해 삭제 후의 배열을 화면에 출력합니다.
unset($my_array[4]);
print_r("요소를 삭제한 후의 배열은 다음과 같습니다.");
print_r($my_array);
실행 결과를 보면 인덱스 4가 사라진 것을 확인할 수 있습니다. unset()은 단순히 요소만 삭제할 뿐, 나머지 요소들의 인덱스를 자동으로 재정렬하지 않기 때문입니다.
참고: 삭제 후 인덱스 재정렬하기
연속된 인덱스가 필요한 경우에는 array_values() 함수를 함께 사용하면 됩니다.
<?php
$my_array = array("Joe", "Ben", "Mary", "Barun", "Sona", "Mona");
unset($my_array[4]);
$my_array = array_values($my_array);
print_r($my_array);
?>
이렇게 하면 "Mona"의 인덱스가 5에서 4로 조정되어 배열이 다시 연속된 순서를 갖게 됩니다. 또한 array_splice() 함수를 사용하면 요소를 삭제하는 동시에 인덱스까지 자동으로 재정렬할 수 있으니 상황에 맞게 선택하여 사용하시기 바랍니다.