PHP에서 배열에서 요소를 삭제하는 방법

Minahil Noor 2023년1월30일
  1. unset()함수를 사용하여 PHP의 배열에서 요소 삭제
  2. array_splice()함수를 사용하여 PHP의 배열에서 요소 삭제
  3. array_diff()함수를 사용하여 PHP의 배열에서 요소 삭제
PHP에서 배열에서 요소를 삭제하는 방법

이 기사에서는 PHP의array에서 요소를 삭제하는 메소드를 소개합니다.

  • unset()함수 사용
  • array_splice()함수 사용
  • array_diff()함수 사용

unset()함수를 사용하여 PHP의 배열에서 요소 삭제

내장 함수 unset()는 변수에 저장된 값을 삭제하는 데 사용됩니다. 지역 변수에만 적용됩니다. 전역 변수에 대한 동작을 반영하지 않습니다. 이 함수를 사용하여배열에서 요소를 삭제할 수 있습니다. 이 기능을 사용하는 올바른 구문은 다음과 같습니다

unset($variableName);

단일 필수 매개 변수가 있습니다. 값을 삭제하려는 변수가이 함수에 매개 변수로 전달됩니다.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

unset($flowers[1]);
echo "The array is:\n";
print_r($flowers);
?>

이 기능은 한 번에 하나의 값을 삭제할 수 있습니다. 요소 인덱스 ($flowers[1])와 함께 배열의 이름이 매개 변수로 전달됩니다. 이 기능은 인덱스 값을 변경하지 않습니다. 인덱스 값은 이전과 동일하게 유지됩니다.

출력:

The array is:
Array
(
    [0] => Rose
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Tulip
    [5] => Sun Flower
    [6] => Daffodil
    [7] => Daisy
)

보시다시피,unset 함수를 적용한 후에 인덱스1이 없습니다.

array_splice()함수를 사용하여 PHP의 배열에서 요소 삭제

array_splice() 함수는array에 요소를 추가하거나array에서 요소를 삭제하는 데 사용됩니다. 이 기능을 사용하는 올바른 구문은 다음과 같습니다

array_splice($arrayName, $startingIndex, $numOfElements, $array2Name);

네 개의 매개 변수가 있습니다.

  1. $arrayName은 필수 매개 변수입니다. 요소가 삭제 될 ‘배열’입니다.
  2. $startingIndex는 삭제하고자하는 요소의 인덱스입니다.
  3. $numOfElements는 시작 인덱스에서 삭제하고자하는 요소의 수입니다.
  4. $array2Name은 추가하고자하는 요소의array입니다.

$numOfElements$array2Name은 선택 사항입니다.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

array_splice($flowers, 4, 3);
echo "The array is:\n";
print_r($flowers);
?>

$flowers 배열은 시작 인덱스 4 및 삭제하고자하는 요소의 수와 함께이 함수에 매개 변수로 전달됩니다. 이런 식으로배열에서 여러 요소를 삭제할 수 있습니다.

출력:

The array is:
Array
(
    [0] => Rose
    [1] => Lili
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Daisy
)
노트

unset과는 달리array_splice 함수는 자동으로 키를 다시 색인화합니다.

Daisy는 새로운 인덱스를 4로 갖지만 원래 인덱스는 7이 아닙니다.

array_diff()함수를 사용하여 PHP의 배열에서 요소 삭제

내장 함수 array_diff()는 둘 이상의배열 의 차이를 찾습니다. 인덱스에 영향을주지 않고 ‘배열’에서 여러 값을 삭제하는 데 사용할 수 있습니다. 이 기능을 사용하는 올바른 구문은 다음과 같습니다

array_diff($array1, $array2, $array3, ... , $arrayN);

매개 변수로 N 개의배열이 필요합니다. 첫 번째 배열을 다른 모든 배열과 비교하고 다른 배열에는없는 첫 번째 배열의 모든 요소를 ​​포함하는 ‘배열’을 반환합니다.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

$flowers = array_diff($flowers, array("Rose","Lili"));
echo "The array is:\n";
print_r($flowers);
?>

여기서 우리가 전달한 첫 번째 배열은$flowers이고 두 번째 배열에는$flowers에서 삭제하려는 요소가 포함되어 있습니다. 이 함수는 배열 요소의 인덱스를 변경하지 않습니다.

출력:

The array is:
Array
(
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Tulip
    [5] => Sun Flower
    [6] => Daffodil
    [7] => Daisy
)

관련 문장 - PHP Array