PHP 배열에서 null 값을 제거하는 방법

PHPz
풀어 주다: 2023-05-11 10:49:37
원래의
466명이 탐색했습니다.

PHP를 개발하다 보면 배열을 처리해야 하는 경우가 많습니다. 배열을 더 깔끔하고 깔끔하게 만들기 위해 배열에서 null 값을 제거해야 하는 경우가 많습니다.

배열의 Null 값은 배열 사용에 영향을 미치지 않지만 배열을 혼란스럽게 만들고 때로는 프로그램에 부담을 줄 수 있습니다. 따라서 null 값을 제거하려면 PHP 함수를 통해 배열을 처리해야 합니다.

PHP는 배열에서 null 값을 제거하는 다양한 방법을 제공하는데, 가장 일반적으로 사용되는 방법은 array_filter() 함수를 사용하는 것입니다. 아래에서는 이 기능을 사용하는 방법을 자세히 소개합니다.

  1. 기본 사용법

array_filter() 함수는 배열에서 원하지 않는 값을 필터링하는 데 사용되는 PHP의 함수입니다. 이 함수의 기본 구문은 다음과 같습니다.

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

여기서 $array는 필터링할 배열을 참조하고 $callback은 적용할 콜백 함수를 나타내는 선택적 매개변수입니다(지정하지 않은 경우 해당 값을 가진 모든 요소는 false는 제거됩니다). $flag는 여전히 선택적 매개변수입니다. PHP_ARRAY_FILTER_USE_BOTH로 설정하면 값과 키가 모두 비어 있는지 확인됩니다.

아래 예를 보세요:

<?php
   $arr = array("a", "b", "", "c", "", "d");
   print_r(array_filter($arr));
?>
로그인 후 복사

출력 결과:

Array
(
    [0] => a
    [1] => b
    [3] => c
    [5] => d
)
로그인 후 복사

여기 코드에서는 $arr 배열을 정의합니다. 배열에는 두 개의 빈 요소 ""가 포함되어 있습니다. elements 에서는 비어 있지 않은 요소, 즉 [a, b, c, d]만 유지됩니다.

  1. Processing associative arrays

동시에 연관 배열을 필터링할 수도 있습니다. 필터 함수는 값에 적용되므로 필터 기준과 일치하는 키-값 쌍만 유지됩니다.

아래 예를 보세요:

<?php
   $arr = array(
      "a" => 1,
      "b" => 2,
      "c" => "",
      "d" => 3,
      "e" => "",
      "f" => 4
   );
   print_r(array_filter($arr));
?>
로그인 후 복사

출력 결과:

Array
(
    [a] => 1
    [b] => 2
    [d] => 3
    [f] => 4
)
로그인 후 복사

여기서 연관 배열 $arr을 정의합니다. 필터링 후에는 키(a, b, d, f)만 표시됩니다.

  1. 사용자 정의 콜백 함수 사용

필터링 조건을 사용자 정의하려면 콜백 함수를 사용하여 이를 달성할 수 있습니다. 콜백 함수는 배열의 단일 요소 값을 매개변수로 받고 해당 값을 유지해야 하는지 여부를 나타내는 부울 값을 반환합니다.

아래 예를 보세요:

<?php
   $arr = array("apple", "banana", "cherry", "donut", "elderberry");
   print_r(array_filter($arr, function($var) {
      return (strlen($var) > 4);
   }));
?>
로그인 후 복사

출력 결과:

Array
(
    [2] => cherry
    [3] => donut
    [4] => elderberry
)
로그인 후 복사

여기서 요소의 길이에 따라 유지할지 여부를 결정하는 콜백 함수를 정의합니다. 길이가 4보다 작거나 같은 요소를 필터링하면 최종 출력 결과는 [체리, 도넛, 엘더베리]입니다.

  1. 다차원 배열의 경우

위에 소개된 방법은 모두 1차원 배열에 적용 가능합니다. 다차원 배열을 필터링하려면 어떻게 해야 할까요?

다음과 같이 재귀 함수를 사용하여 다차원 배열을 처리할 수 있습니다.

<?php
   $arr = array(
      0 => 'some data',
      1 => '',
      2 => array(
         0 => 'more data',
         1 => '',
         2 => array(
            0 => 'even more data',
            1 => '',
         ),
      ),
   );
   function removeEmptyValues(&$array) {
      foreach($array as $key => &$value) {
         if(is_array($value)) {
            removeEmptyValues($value);
            if(count($value) == 0) {
               unset($array[$key]);
            }
         }
         else if(empty($value)) {
            unset($array[$key]);
         }
      }
      unset($value);
   }
   removeEmptyValues($arr);
   print_r($arr);
?>
로그인 후 복사

출력 결과:

Array
(
    [0] => some data
    [2] => Array
        (
            [0] => more data
            [2] => Array
                (
                    [0] => even more data
                )
        )
)
로그인 후 복사

여기서 다차원 배열을 순회하고 내부 요소를 처리하는 재귀 함수 RemoveEmptyValues()를 정의합니다. . null 값을 자동으로 제거합니다.

요약

배열은 PHP 개발에서 매우 일반적이지만 때로는 배열에 많은 수의 null 값이 포함되어 많은 양의 저장 공간을 차지하고 프로그램 성능에 영향을 미칠 수 있습니다. 이때 array_filter를 사용할 수 있습니다. () 함수를 사용하면 NULL 값을 제거하여 배열을 더 깔끔하고 효율적으로 만들 수 있습니다. 다차원 배열을 다룰 때는 재귀 함수를 사용해야 한다는 점에 유의해야 합니다.

물론 이것은 단순한 해결책일 뿐이며 모든 상황에서 작동하지는 않습니다. 더 좋은 방법이 있으면 공유해주세요.

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

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