我有一些代码想要放到我的网站上,并在<body>之后使用位于设计之外的“flair”(Div)提供了一个空间。代码如下:
//Add Flair Containers as needed
if($flairs>0){
echo "<!--Flair Graphics (if needed)-->\n";
while($fQty = --$flairs+1){ //-- subracts 1, +1 accounts for 1 being 0
$flair = array($flair1, $flair2, $flair3);
foreach($flair as $flairCode){
echo "<div id=\"flair-".$fQty++."\">".$flairCode."</div>\n";
};
};
};它可以正确打印,其中content = $flair1、$flair2等。
<div id="flair-1">Content1</div>
<div id="flair-2">Content2</div>
<div id="flair-3">Content3</div>但是如果$flair2/$flair3为空,它仍然打印一个div。我该如何解决这个问题呢?
发布于 2013-02-22 11:27:07
在您的foreach循环中,您可以检查该值是否为empty,如果是,则跳到下一个值(即跳过)。
如下所示:
if($flairs>0){
echo "<!--Flair Graphics (if needed)-->\n";
while($fQty = --$flairs+1){ //-- subracts 1, +1 accounts for 1 being 0
$flair = array($flair1, $flair2, $flair3);
foreach($flair as $flairCode){
if (empty($flairCode)) continue;
echo "<div id=\"flair-".$fQty++."\">".$flairCode."</div>\n";
};
};
};发布于 2013-02-22 11:27:56
我怀疑您可以简单地在您的echo语句前面加上if($flairCode)。这将使您的内部循环:
foreach($flair as $flairCode){
if($flairCode) echo "<div id=\"flair-".$fQty++."\">".$flairCode."</div>\n";
};需要注意的几点:
$flair数组总是相同的,所以在循环之外构造它(这也会让你只评估一次条件。$fQty++不足以保证ID的唯一性,特别是因为每次命中while时,值都会被重置)。我建议$fQty不应该是while条件的一部分,只是作为一个独立的计数。https://stackoverflow.com/questions/15016262
复制相似问题