需要简单的php foreach循环帮助
我有一个类似这样的循环需要简单的php foreach循环帮助,php,foreach,Php,Foreach,我有一个类似这样的循环 $sn_count = 1; $prodfilter = ""; foreach($prods as $prod){ $prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>"; $sn_count++; } echo $prodfilter; 我试过了 if(!empty($
$sn_count = 1;
$prodfilter = "";
foreach($prods as $prod){
$prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>";
$sn_count++;
}
echo $prodfilter;
我试过了
if(!empty($prod['product'][1])) {
$prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>";
}
if(!empty($prod['product'][1])){
$prodfilter.=''.$prod['product'][1]。'';
}
但它不起作用 你可以尝试几种方法 先试试这个
if(strlen(trim($prod['product'][$sn_count]))>0) {
$prodfilter .= "<div class=\"product\">".$prod['product'][$sn_count]."</div>";
}
if(strlen(trim($prod['product'][$sn_count]))>0){
$prodfilter.=''.$prod['product'][$SNU count]。'';
}
或
if(isset($prod['product'][$sn\u count])){
$prodfilter.=''.$prod['product'][$SNU count]。'';
}
正确的做法是在您尝试时检查它是否为空,但由于它失败了,显然那里有一些数据。你可以做一个var_转储,弄清楚它是什么,为什么存在,这可能会导致你找到问题的根源
如果可用,您的意思是声明,那么顺便说一下,isset是正确的函数。我认为正确的方法是检查返回的行数。我假设您正在使用MySQL,因为您没有指定。如果您不使用它,请寻求其他帮助
这应该检查您的查询是否返回了超过0行(因此需要绘制)。它解决了吗?等等,您的循环在
$steps
上迭代,但您正在测试并输出$prod
??每次循环迭代都会得到相同的结果。@Michael:我也注意到了,但我假设他遗漏了其他代码来缩短它。如果密钥不存在,它会警告您密钥不存在。没错。肮脏的伎俩是将@prepend添加到$prod以抑制警告;)哪一种不受欢迎的方式将起作用。
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>";
}
if (mysql_num_rows($prods)!=0) {
//Do your code
}