[英]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.