> 백엔드 개발 > PHP 문제 > PHP 배열에서 요소를 제거하는 방법

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

藏色散人
풀어 주다: 2023-03-08 21:26:02
원래의
4036명이 탐색했습니다.

PHP 배열에서 요소를 제거하는 방법: 1. "unset($array[1]);"을 통해 배열 요소를 제거합니다. 2. "array_splice($array, 1, 1);"을 통해 배열 요소를 제거합니다.

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

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

Introduction

PHP 배열은 직설적으로 말하면 매핑된 키-값 쌍 세트입니다. 그렇다면 배열 요소에서 요소를 제거하는 방법은 무엇입니까? 먼저 배열을 순회한 다음 대상 항목을 찾아 삭제하는 방법을 생각해야 합니다.

몇몇 학생들이 삭제할 요소를 null로 설정했는데, null도 값으로 존재하기 때문에 작동하지 않는 것을 봤습니다. 요소는 제거할 수 없습니다.

이 문서에서는 배열 요소를 제거하는 방법에 대해 구체적으로 설명합니다.

학습 시간

대략 배열 요소를 제거하는 일반적인 방법에는 두 가지가 있는데, 하나는 unset 함수이고 다른 하나는 array_splice 함수입니다.

array_splice 언제 사용하나요? 즉, 값을 얻었지만 인덱스를 모르기 때문에 이것을 사용해야 합니다.

unset 함수

unset 함수를 사용해도 인덱스가 다시 작성되지 않으며 배열이 섞이지 않는다는 점에 유의하세요. 요소를 삭제한 후 인덱스를 다시 생성하려면 array_values를 수행하면 반환된 배열이 다시 인덱스됩니다. 그리고 모든 인덱스는 기본적으로 0부터 시작하는 숫자로 설정됩니다.

예:

$array = [0 => "a", 1 => "b", 2 => "c"];
unset($array[1]);
로그인 후 복사

이 작업을 수행한 후 $array 배열의 값은 다음과 같습니다.

[
    [0] => a
    [2] => c
]
로그인 후 복사

배열 인덱스가 변경되지 않은 것을 확인할 수 있습니다.

[추천 학습: PHP 비디오 튜토리얼]

array_splice 함수

요소를 제거한 후에도 연관 배열의 해당 관계는 변경되지 않습니다. 이 함수의 매개변수 형식:

array array_splice( array &$input, int $offset[, int $length = 0[, mixed $replacement]] )
로그인 후 복사

은 array 그 중 일부를 제거하고 다른 값으로 바꿉니다. 마지막 매개변수 교체가 전달되지 않으면 기본적으로 오프셋으로 시작됩니다. 숫자 인덱스인 경우 반환된 배열은 다시 인덱스됩니다:

$array = [0 => "a", 1 => "b", 2 => "c"];
array_splice($array, 1, 1);
로그인 후 복사

반환값:

[
    [0] => a
    [1] => c
]
로그인 후 복사

인덱스가 다시 생성된 것을 확인할 수 있습니다. -번호가 매겨져 있습니다.

한 단계 더 나아가세요

위에서 언급한 두 가지 예는 모두 단일 요소를 삭제한 것입니다. 여러 배열 요소를 제거하는 방법에 대해 이야기해 보겠습니다.

unset / arraysplice는 사용하기가 너무 번거로워서 하나씩 조작을 해야 합니다. 배열 요소의 키나 값을 알고 있으면 array_diff / array_diff_key를 사용하여 일괄 작업을 수행할 수 있습니다.

array_diff 함수

예를 들어 삭제할 요소의 값을 알고 있는 경우 다음과 같이 제거할 수 있습니다.

$array = [0 => "a", 1 => 2 => " c"];

$array = array_diff($array, ["a", "c"]);

<br/>
로그인 후 복사

결과 출력:

[
    [1] => b
]
로그인 후 복사
로그인 후 복사

배열의 인덱스가 재구성되지 않습니다.

array_diff_keys 함수

삭제할 요소의 인덱스를 알고 있는 경우 다음과 같이 삭제할 수 있습니다.

$array = [0 => "a", 1 => "b", 2 => "c"];
$array = array_diff_key($array, [0 => "xy", "2" => "xy"]);
로그인 후 복사

실행 후 출력:

[
    [1] => b
]
로그인 후 복사
로그인 후 복사

인덱스가 다시 작성되지 않습니다.

마지막에 작성

이 기사에서는 여러 예제를 사용하여 배열에서 요소를 제거하는 방법을 보여줍니다. 전 세계에서 for 루프를 사용하지 마세요. PHP는 중복 코드를 줄이는 데 도움이 되는 다양한 기능 도구를 제공하므로 이를 사용해야 합니다.

위 내용은 PHP 배열에서 요소를 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿