Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP unset() 함수를 활용해 배열에서 요소 삭제하는 방법

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() 함수를 사용하면 요소를 삭제하는 동시에 인덱스까지 자동으로 재정렬할 수 있으니 상황에 맞게 선택하여 사용하시기 바랍니다.