PHP의 다차원 배열이 비어 있는지 확인하는 방법

WBOY
풀어 주다: 2016-09-21 14:12:54
원래의
1011명이 탐색했습니다.

<code>$hasVideo = $details['data']['topic']['has_video'];</code>
로그인 후 복사
로그인 후 복사

예를 들어 이 코드에서는 이전 배열 'data'와 'topic'에 값이 언제 있는지 알 수 없으므로 할당 작업을 수행하기 전에 값이 있는지 판단해야 합니다. 값을 할당할 때 오류를 피하기 위해 간단한 판단을 합니까?
비어있는 방식만 사용한다면 다음과 같이 레이어별로 판단을 내려야 할 것 같습니다.

<code>if(!empty($details)&&!empty($details['data'])&&!empty($details['data']['topic'])&&!empty($details['data']['topic']['has_video']))</code>
로그인 후 복사
로그인 후 복사

더 쉬운 방법이 있나요? 또는 값을 한 번에 얻을 수 있는지 확인하기 위해 공개 메서드를 직접 작성할 수도 있습니다.

답글 내용:

<code>$hasVideo = $details['data']['topic']['has_video'];</code>
로그인 후 복사
로그인 후 복사

예를 들어 이 코드에서는 이전 배열 'data'와 'topic'에 값이 언제 있는지 알 수 없으므로 할당 작업을 수행하기 전에 값이 있는지 판단해야 합니다. 값을 할당할 때 오류를 피하기 위해 간단한 판단을 합니까?
비어있는 방식만 사용한다면 다음과 같이 레이어별로 판단을 내려야 할 것 같습니다.

<code>if(!empty($details)&&!empty($details['data'])&&!empty($details['data']['topic'])&&!empty($details['data']['topic']['has_video']))</code>
로그인 후 복사
로그인 후 복사

더 쉬운 방법이 있나요? 또는 값을 한 번에 얻을 수 있는지 확인하기 위해 공개 메서드를 직접 작성할 수도 있습니다.

isset을 이용해 판단해 보세요.

<code class="php">$hasVideo = isset($details['data']['topic']['has_video']) ? $details['data']['topic']['has_video'] : $something_else;</code>
로그인 후 복사

어쩌면 제가 실수를 했을 수도 있고, 동료들에게 속았을 수도 있습니다. . 사실은 존재함과 비어 있음을 판단할 수 있다. .
작은 테스트를 해보니 오류가 보고되지 않는 것으로 나타났습니다.

<code><?php
    $test = array(
        test1=>array(
            test2=>array(
                test3=>array(
                    test4=>123,
                ),
            ),
        ),
    );
    var_dump(isset($test['test1']['test2']['test3']['test4']['test4']['test4']['test4']));
    var_dump(!empty($test['test1']['test2']['test3']['test4']['test4']['test4']['test4']));
?></code>
로그인 후 복사

카운트나 전류를 사용하여 판단하면 다차원 감지가 반복됩니다.

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