PHP에서 null 값을 삭제하는 방법

伊谢尔伦
풀어 주다: 2023-03-11 09:28:01
원래의
1088명이 탐색했습니다.

과거에는 배열에서 빈 값을 제거할 때 foreach 또는 while을 강제로 사용하여 배열의 빈 요소를 삭제했습니다.

<?php   
foreach( $arr as $k=>$v){   
    if( !$v )   
        unset( $arr[$k] );   
}   
?>
로그인 후 복사

그리고 저는 기분은 별로지만 효율성은 높지 않습니다. 먼저 $arr를 개체로 변환한 다음 해당 개체의 특성을 사용하여 삭제합니다. . foreach가 실행될 때마다 변수가 복사됩니다. 페이지에 foreach가 너무 많으면 엄청난 소모가 발생합니다.

인터넷을 돌아다니던 중 누군가가 array_filter를 사용하자고 제안하는 것을 보고 깜짝 놀랐습니다. 설명서를 열어 살펴보니 보물산을 지키고 있었지만 사용법을 몰랐던 것입니다.

array_filter 함수의 기능은 콜백 함수를 사용하여 배열을 필터링하는 것입니다. 항상 콜백 함수를 사용하여 처리할 수 있다고 생각했지만 매뉴얼에 문장이 있는 것을 찾지 못했습니다. 콜백 함수가 없는 경우 기본값은 잘못된 프로젝트가 있는 배열을 삭제하는 것입니다.

코드는 다음과 같습니다.

<?php   
$entry = array(   
           0 => &#39;foo&#39;,   
        1 => false,   
        2 => -1,   
        3 => null,   
        4 => &#39;&#39;  
       );   
print_r(array_filter($entry));   
?>
로그인 후 복사

출력 값은

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

아직은 앞으로도 매뉴얼을 더 읽어봐야 할 것 같습니다... array_slice도 좋은 것처럼 말이죠. 안타깝게도 나는 이전에 그것을 눈치 채지 못했습니다.

첨부 파일: 또 다른 예

$strDelCodes = "A;B;;C;;C;D;;;D;D";
$rsArray = array_values(array_unique(array_diff (split (";", $strDelCodes), array (""))));
로그인 후 복사

$rsArray 배열에 저장된 값은 다음과 같습니다. A B C D

array_values() 함수는 주어진 배열의 모든 키 값을 포함하는 배열을 반환하지만 키 이름은 유지되지 않습니다.

array_diff() 함수는 두 배열의 차이 배열을 반환합니다. 이 배열에는 비교되는 배열에 있지만 다른 인수 배열에는 없는 모든 키가 포함됩니다.

array_unique() 함수는 배열에서 중복된 값을 제거하고 결과 배열을 반환합니다. 여러 배열 요소의 값이 동일할 경우 첫 번째 요소만 유지되고 나머지 요소는 삭제됩니다.

반환된 배열의 키 이름은 변경되지 않습니다.

array_merge() 함수는 두 개 이상의 배열을 하나의 배열로 병합합니다.

중복된 키 이름이 있는 경우 해당 키의 키 값은 마지막 키 이름에 해당하는 값이 됩니다. (나중 키 이름이 이전 키 이름을 덮어씁니다.) 배열이 숫자로 인덱싱된 경우 키 이름은 연속적으로 다시 인덱싱됩니다.

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

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