PHP 배열의 빈 요소 인덱스를 제거하는 방법

PHPz
풀어 주다: 2023-04-12 11:36:02
원래의
500명이 탐색했습니다.

먼저 빈 요소 인덱스가 무엇인지 먼저 이해해 봅시다.

PHP에서 배열은 키와 값으로 구성되며, 해당 관계는 사전의 키와 값의 관계와 같습니다. PHP에서 배열의 키는 숫자 또는 문자열일 수 있습니다. 배열에서 인스턴스를 삭제하면 해당 인스턴스는 배열에서 제거되지만 해당 인덱스는 배열에 남아 있습니다. 배열의 모든 요소를 ​​삭제했지만 여전히 배열을 유지하는 경우 해당 배열은 빈 배열이 되며 빈 배열의 키는 여전히 존재합니다. 이 빈 배열에서는 키에 해당하는 값도 비어 있으므로 이를 빈 요소 인덱스라고 부릅니다.

배열에 빈 요소 인덱스가 많이 포함된 경우 이러한 빈 요소는 배열의 순회 및 처리에 영향을 미치므로 때로는 이러한 빈 요소를 제거해야 합니다. 다음으로 PHP에서 배열의 빈 요소 인덱스를 제거하고 인덱스를 순서대로 재설정하는 방법을 살펴보겠습니다.

PHP에는 배열의 빈 요소 인덱스를 제거하는 데 사용할 수 있는 두 가지 매우 유용한 함수가 있는데, 그것은 array_filter()와 array_values()입니다. 배열의 첫 번째 함수는 배열의 콜백 함수를 필터링하는 데 사용되며, 두 번째 함수는 배열에 있는 모든 키의 인덱스를 재설정하는 데 사용됩니다.

먼저 array_filter() 함수의 기본 구문을 살펴보겠습니다.

array array_filter( array $array [, callable $callback [, int $flag = 0 ]] )
로그인 후 복사

함수는 배열을 매개변수로 받아들이고 필터링된 새 배열을 반환합니다. 두 번째 선택적 매개변수인 $callback은 주어진 배열의 각 요소에 대해 호출될 콜백 함수를 지정합니다. 콜백 함수가 true를 반환하면 요소가 새 배열에 포함되고, false를 반환하면 요소가 새 배열에서 제거됩니다.

실제 예를 살펴보겠습니다.

$array = array("foo", "", "bar", "", "baz");
$filtered_array = array_filter($array);
print_r($filtered_array);
로그인 후 복사

위 예에서 $array 배열에는 5개의 요소가 포함되어 있으며 그 중 2개는 빈 요소입니다. array_filter() 함수를 사용하면 배열의 빈 요소가 제거되고 새 배열 $filtered_array가 반환됩니다. 출력은 다음과 같습니다.

Array
(
    [0] => foo
    [2] => bar
    [4] => baz
)
로그인 후 복사

위 결과에서 새 배열 $filtered_array에 빈 요소 인덱스가 포함되어 있지 않음을 알 수 있습니다.

다음으로 배열에 있는 모든 키의 인덱스를 재설정하는 방법을 살펴보겠습니다. 이는 PHP에 내장된 array_values() 함수를 통해 달성할 수 있습니다. 이 함수는 배열을 매개변수로 받아들이고 모든 키가 연속된 정수로 재설정되는 새 배열을 반환합니다.

실제 예를 살펴보겠습니다.

$array = array("foo", "bar", "baz");
$indexed_array = array_values($array);
print_r($indexed_array);
로그인 후 복사

위 예에서는 키가 없는 $array 배열이 제공됩니다. array_values() 함수를 사용하면 새 배열 $indexed_array가 생성됩니다. 연속된 정수로 재설정됩니다. 출력은 다음과 같습니다.

Array
(
    [0] => foo
    [1] => bar
    [2] => baz
)
로그인 후 복사
로그인 후 복사

위 결과에서 새 배열 $indexed_array의 키 이름이 연속된 정수로 올바르게 설정되었음을 확인할 수 있습니다.

이제 이 두 함수를 함께 사용하여 빈 요소 인덱스가 포함된 배열을 처리하고 키를 다시 입력한 인덱스가 있는 새 배열을 반환할 수 있습니다.

실제 예를 살펴보겠습니다.

$array = array("foo", "", "bar", "", "baz");
$filtered_array = array_filter($array);
$indexed_array = array_values($filtered_array);
print_r($indexed_array);
로그인 후 복사

위 예에서는 array_filter() 및 array_values() 두 함수를 사용하여 연결합니다. 먼저 array_filter() 함수를 사용하여 배열의 빈 요소 인덱스를 제거한 다음 array_values() 함수를 사용하여 새 배열의 모든 키 인덱스를 재설정합니다. 출력은 다음과 같습니다.

Array
(
    [0] => foo
    [1] => bar
    [2] => baz
)
로그인 후 복사
로그인 후 복사

위 결과에서 새 배열 $indexed_array에 더 이상 빈 요소 인덱스가 포함되지 않고 모든 키의 인덱스가 연속된 정수로 재설정되었음을 확인할 수 있습니다.

요약하자면, array_filter() 함수와 array_values() 함수를 사용하면 PHP 배열의 빈 요소 인덱스를 쉽게 처리하고 새 배열의 모든 키 인덱스를 올바르게 설정할 수 있습니다. 이는 우리에게 매우 중요합니다. PHP 코드 작성은 매우 도움이 됩니다.

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

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