簡體   English   中英

foreach循環不適用於單個結果

[英]foreach loop not working with single result

我將以下數組存儲在變量$details

[formats] => Array ( 
        [format] => Array ( 
                 [0] => Array ( 
                    [formatId] => 1 
                    [code] => High 
                    [price] => Array ( 
                           [0] => 0.00 
                           [1] => 0.00 
                           [2] => 0.00 
                           [3] => 0.00 
                           [4] => 0.00 ) ) 
                  [1] => Array ( 
                     [formatId] => 2 
                     [code] => Med 
                     [price] => Array ( 
                            [0] => 0.00 
                            [1] => 0.00 
                            [2] => 0.00 
                            [3] => 0.00 
                            [4] => 0.00 ) ) 
                   ) )

我使用以下代碼循環遍歷此數組

<? foreach ($details['formats']['format'] as $format)
     {
        echo $format['code'];
     }
?>

效果很好,但是有時數組中只有一個結果,然后看起來像這樣:

[formats] => Array ( 
        [format] => Array ( 
                    [formatId] => 1 
                    [code] => High 
                    [price] => Array ( 
                           [0] => 0.00 
                           [1] => 0.00 
                           [2] => 0.00 
                           [3] => 0.00 
                           [4] => 0.00 )
                   ) )

不幸的是,我的for每個循環然后無法正常工作,因為它只是一個數組。 如何解決呢? 我無法更改數組。

如果需要,我可以使用while或for循環,但是我不知道如何

解決該問題的一種非常粗略的方法是在其周圍加上一個“ if”。

<? 
if (isset($details['formats']['format'][0])){
    foreach ($details['formats']['format'] as $format)
    {
        echo $format['code'];
    }
} else {
    echo $details['formats']['format']['code'];
}
?>

這僅在結果數組一致時才有效,並且在多個結果上始終返回[0]。

這也應該起作用。

if ( is_array($details['formats']['format']) && array_key_exists("code", $details['formats']['format']) ) {
    echo $details['formats']['format']['code'];
} else if ( is_array( $details['formats']['format'] ) {
    foreach ($details['formats']['format'] as $format)
    {
        echo $format['code'];
    }
}

暫無
暫無

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

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