簡體   English   中英

PHP:優雅的方式來預測關聯數組的子陣列

[英]PHP: Elegant Way to foreach Over a Subarray of an Associative Array

我有一個關聯的數組數組。 關聯數組數組並不總是包含相同的子數組。 如果它存在,我想循環一個特定的子數組。 是否有更優雅的方式來執行以下代碼:

if ( array_key_exists( 'fizzy_drinks', $drinks ) ) {

    foreach ( $drinks['fizzy_drinks'] as $fizzy_drink ) {

        // do something with $fizzy_drink
    }
}

不是真的,這是優雅的:

if (isset($drinks['fizzy_drinks'])) {
    foreach ( $drinks['fizzy_drinks'] as $fizzy_drink ) {
        // do something with $fizzy_drink
    }
}

如果省略isset,如果未設置fizzy_drinks,則會收到通知,如果$ drinks不是數組,則會收到警告。

您可能更喜歡使用is_array

if(is_array($drinks['fizzy_drinks'])) {
  foreach ($drinks['fizzy_drinks'] as $fizzy_drink) {
    // do something with $fizzy_drink
  }
}

您可以使用:

if (! empty($drinks['fizzy_drinks']) && is_array($drinks['fizzy_drinks'])) {
    foreach ($drinks['fizzy_drinks'] as $fizzy_drink) {
        // do something with $fizzy_drink
    }
}

沒有警告,沒有通知

並不是的。 我認為您的解決方案非常優雅,可讀。 我會做:

if (array_key_exists('fizzy_drinks', $drinks) && is_array($drinks['fizzy_drinks'])) {
    foreach ($drinks['fizzy_drinks'] as $fizzy_drink ) {
        // do something with $fizzy_drink
    }
}

總是很高興檢查你嘗試使用foreach的值是否真的是一個數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM