PHP 배열 요소 삭제

WBOY
풀어 주다: 2023-05-07 16:16:08
원래의
676명이 탐색했습니다.

PHP에서 배열은 매우 일반적으로 사용되는 데이터 유형이며 배열을 조작해야 하는 경우도 매우 자주 발생합니다. 그중 배열 요소를 삭제하는 것은 일반적인 작업입니다. 이 기사에서는 PHP에서 배열 요소를 삭제하는 데 필요한 지식과 기술을 설명합니다.

1. 배열 요소를 삭제하려면 unset() 함수를 사용하세요.

PHP는 배열의 요소를 삭제하는 unset() 함수를 제공합니다. 이 함수는 단일 또는 여러 요소 삭제를 지원합니다. 예를 들어 $arr라는 배열이 있고 unset() 함수를 사용하여 해당 요소 중 하나를 삭제할 수 있습니다.

$arr = array('a', 'b', 'c', 'd');  // 定义数组
unset($arr[1]);  // 删除 $arr[1] 元素
로그인 후 복사

위 코드가 실행되면 $arr 배열의 'b' 요소가 삭제됩니다. .

여러 요소를 삭제해야 하는 경우 unset() 함수에서 여러 요소의 인덱스를 전달할 수 있습니다.

$arr = array('a', 'b', 'c', 'd');  // 定义数组
unset($arr[1], $arr[3]);  // 删除 $arr[1] 和 $arr[3] 元素
로그인 후 복사

위 코드가 실행된 후 $arr 배열의 'b' 및 'd' 요소 삭제됩니다.

Unset() 함수를 사용하여 배열 요소를 삭제하면 해당 요소의 값이 정의되지 않음으로 표시될 뿐이며, 즉 해당 요소가 배열에서 제거되지 않습니다. 따라서 요소를 삭제한 후에도 배열 인덱스는 재배치되거나 이동되지 않지만 원래 인덱스 위치는 유지됩니다. 이 점이 unset() 함수와의 가장 큰 차이점이기도 합니다.

2. array_splice() 함수를 사용하여 배열 요소를 삭제하세요

PHP에서 배열 요소를 삭제하는 또 다른 방법은 array_splice() 함수를 사용하는 것입니다. 이 함수는 배열에서 지정된 요소를 제거하고 제거된 요소를 반환합니다. 새로운 요소 배열. 예를 들어 다음 배열이 있습니다.

$arr = array('a', 'b', 'c', 'd');
로그인 후 복사

두 번째 요소 'b'를 삭제해야 하는 경우 다음 코드를 사용할 수 있습니다.

$new_arr = array_splice($arr, 1, 1);
로그인 후 복사

위 코드에서 $arr는 연산에 필요한 원래 배열입니다. 두 번째 매개변수 1은 삭제해야 하는 요소의 인덱스 위치이고, 세 번째 매개변수 1은 삭제해야 하는 요소의 개수입니다.

위 코드를 실행하면 원래 배열 $arr는 ['a', 'c', 'd']가 되고 새 배열 $new_arr에는 삭제된 요소 'b'가 포함됩니다. 즉, $new_arr = ['b'].

unset() 함수와 달리 array_splice() 함수는 삭제된 요소 뒤에 남은 공백을 채우기 위해 나머지 요소의 인덱스를 다시 정렬합니다. 예를 들어 $arr 배열에서 'b' 및 'd' 요소를 삭제하면 코드는 다음과 같습니다.

$new_arr = array_splice($arr, 1, 2);
로그인 후 복사

위 코드를 실행하면 $arr 배열은 ['a', 'c']가 됩니다. , 새 배열 $new_arr은 ['b', 'd']입니다.

3. array_diff() 함수를 사용하여 배열 요소를 삭제합니다

위의 두 가지 방법 외에도 PHP에는 array_diff() 함수를 사용하여 배열 요소를 삭제하는 또 다른 방법이 있습니다. 이 함수는 두 배열을 비교하고 첫 번째 배열에는 포함되어 있지만 다른 배열에는 포함되지 않은 요소로 구성된 새 배열을 반환하는 데 사용할 수 있습니다. 예를 들면 다음과 같습니다.

$arr = array('a', 'b', 'c', 'd');
$remove = array('b', 'd');
$new_arr = array_diff($arr, $remove);
로그인 후 복사

위 코드에서 $arr는 우리가 연산해야 하는 원래 배열이고, $remove 배열은 $arr 배열에서 삭제해야 하는 요소이며, $new_arr의 값은 $에 포함되어 있습니다. arr이지만 제거 시 $ 요소에는 포함되지 않습니다(예: $new_arr = ['a', 'c']).

배열 요소를 삭제하기 위해 array_diff() 함수를 사용하면 해당 요소가 직접 삭제되는 것이 아니라 조건에 맞는 요소를 새 배열에 복사하므로 원래 배열에는 영향을 미치지 않습니다. 동시에 이 방법을 사용하여 여러 요소를 삭제할 수도 있습니다. 삭제할 요소를 배열로 전달하고 이를 두 번째 매개변수에 전달하기만 하면 됩니다.

4. 다차원 배열의 요소 삭제

위의 방법을 사용하면 1차원 배열의 요소를 삭제할 수 있지만 다차원 배열의 경우 요소를 삭제하려면 몇 가지 특별한 기술을 사용해야 합니다.

다차원 배열에서 지정된 요소를 삭제하려면 두 개의 루프를 사용하여 배열을 순회하고 삭제해야 하는 요소를 찾은 다음 unset() 함수를 사용하여 삭제할 수 있습니다. 예:

$arr = array(
  array('a', 'b', 'c'),
  array('d', 'e', 'f'),
  array('g', 'h', 'i')
);
$remove_value = 'b';
foreach ($arr as $key1 => &$value1) {
  foreach ($value1 as $key2 => &$value2) {
    if ($value2 === $remove_value) {
      unset($value1[$key2]);
    }
  }
}
로그인 후 복사

위 코드에서는 $arr 배열의 각 요소를 가져오고, $key1 및 $key2 변수를 사용하여 현재 배열 인덱스를 기록하고, 각 요소를 삭제해야 하는 요소와 비교하고, 필요한 요소를 찾습니다. 삭제하려면 unset() 함수를 사용하여 삭제하세요.

다차원 배열의 요소를 삭제하려면 참조 전달을 사용하여 배열 요소를 작동해야 한다는 점에 유의해야 합니다. foreach 루프만 사용하는 경우 루프 내부의 배열 요소 수정이 실패합니다.

요약

배열 요소를 삭제하는 것은 PHP에서 일반적인 작업입니다. 이 기사에서는 unset() 함수, array_splice() 함수 및 array_diff() 함수의 세 가지 측면에서 배열 요소를 삭제하는 방법과 기술을 소개하고 다차원을 사용합니다. 배열 이 예에서는 다차원 배열에서 요소를 삭제하는 방법을 보여줍니다. 이러한 지식과 기술을 익히면 어레이를 보다 유연하게 운영하고 코드 작성 효율성을 향상시킬 수 있습니다.

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

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