php多維陣列如何確定是否為空白

來源:互聯網
上載者:User
$hasVideo = $details['data']['topic']['has_video'];

例如這樣一段代碼,因為不知道之前的數組‘data’、‘topic’什麼時候有值,需要判斷有值時才進行賦值操作,如何才能簡單的判斷避免賦值時報錯。
如果只用empty方法,好像需要這樣一層一層的判斷進去:

if(!empty($details)&&!empty($details['data'])&&!empty($details['data']['topic'])&&!empty($details['data']['topic']['has_video']))

有沒有簡便一點的方法?或者是自己寫一個公用方法,能一次就判斷是否能拿到值。

回複內容:

$hasVideo = $details['data']['topic']['has_video'];

例如這樣一段代碼,因為不知道之前的數組‘data’、‘topic’什麼時候有值,需要判斷有值時才進行賦值操作,如何才能簡單的判斷避免賦值時報錯。
如果只用empty方法,好像需要這樣一層一層的判斷進去:

if(!empty($details)&&!empty($details['data'])&&!empty($details['data']['topic'])&&!empty($details['data']['topic']['has_video']))

有沒有簡便一點的方法?或者是自己寫一個公用方法,能一次就判斷是否能拿到值。

isset判斷一下不就行了.

$hasVideo = isset($details['data']['topic']['has_video']) ? $details['data']['topic']['has_video'] : $something_else;

可能是自己犯二了,也是被同事騙了。。其實isset和empty是可以判斷的。。
我做了一個小小的測試,發現是不會報錯的。

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']));?>

用count或者current判斷,多維就遞迴檢測。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.