简单的php foreach循环帮助需要

时间:2012-03-22 00:30:56

标签: php foreach

我有一个像这样的每个循环

      $sn_count = 1;
      $prodfilter = "";
      foreach($prods as $prod){
        $prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>";
        $sn_count++;
      }
      echo $prodfilter;

现在我的问题是我的“产品”类显示边框,即使$prod['product'][1]不可用。所以我想用if语句测试它。

If (product value available) {
$prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>";
}   

我试过这样的。

if(!empty($prod['product'][1])) {
$prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>";
 }

但它不起作用。

3 个答案:

答案 0 :(得分:1)

你可以尝试几件事

尝试这个开始

if(strlen(trim($prod['product'][$sn_count]))>0) {
 $prodfilter .= "<div class=\"product\">".$prod['product'][$sn_count]."</div>";
  }

if(isset($prod['product'][$sn_count])) {
 $prodfilter .= "<div class=\"product\">".$prod['product'][$sn_count]."</div>";
  }

答案 1 :(得分:1)

我认为正确的做法是检查返回的行数。我假设您使用的是MySQL,因为您没有指定。如果您不使用它,请寻求其他帮助。

http://www.php.net/manual/en/function.mysql-num-rows.php

if (mysql_num_rows($prods)!=0) {
    //Do your code
}

这应检查您的查询是否返回超过0行(因此需要绘制)。它能解决吗?

答案 2 :(得分:0)

正确的做法是在你尝试时检查它是否为空,但由于它失败,那里显然有一些数据。你可以做一个var_dump并找出它存在的原因和原因,这可能会引导你找到问题的根源。

如果可用你的意思是声明那么isset是顺便使用的正确功能。