2012-08-02 64 views
-2

我使用JSON获取数据,然后显示PHP。所以... 我显示了一个人可用的一切,并且当循环为空/空时显示“没有任何东西可用”的消息,因为现在它只是在没有数据时显示空白屏幕。 。 有任何想法吗??如何检查如果foreach循环空使用json和php时

<? 
foreach($json['available'] as $r) { 
echo '<li><a href="url.php?id='.$r['id'].'">' .$r['item'].'</a></li>'; 
}} 
?> 

回答

1

只需使用if声明并检查$json['available']是否为空empty()

if(empty($json['available'])) { 
    echo '<li>No items are available</li>'; 
} else { 
    foreach($json['available'] as $r) { 
     echo '<li><a href="url.php?id='.$r['id'].'">' .$r['item'].'</a></li>'; 
    } 
} 
+1

你也可以算你($ JSON [“可用”]),而不是空($ JSON [“可用”]) – Oussama 2012-08-02 14:50:16

+0

@nickb我再次测试,现在我得到了味精,每次没有可用的项目。即使有r项目 - 任何想法? – Azukah 2012-08-03 13:42:42

+0

@Azukah - 是的,可用有一个错字,这是你不应该从互联网复制和粘贴代码的原因之一。 :P我修正了错字。 – nickb 2012-08-03 13:48:12

1

使用empty来检查$ json是否包含某些内容。

1

假设$json['available']将是一个空数组在最坏的情况:

if (!$json['available']) { 
    echo "nothing to show!"; 
} 
else { 
    // your current code 
} 

如果这是可能的,$json['available']可能甚至不存在,更“重手”的选择是

if (empty($json['available'])) { 
    echo "nothing to show!"; 
}