我在foreach循环中嵌入html有问题: HTML:
<div class="head">
<div class="wins">
<div class="images">
<a href="#"><img src="images/1.jpg" alt=""></a>
<a href="#"><img src="images/2.jpg" alt=""></a>
<a href="#"><img src="images/3.jpg" alt=""></a>
</div>
<div class="Bar">
<a href="#" rel="1"><span>1</span>Cat1</a>
<a href="#" rel="2"><span>2</span>Cat2</a>
<a href="#" rel="3"><span>3</span>Cat3</a>
</div>
</div>
我想用这个函数打印html:
function Bar($array){
$box .= '<div class="images">';
foreach($array as $key => $value){
$box .= ' <a href="#"><img src="'.$value['image'].'" alt=""></a>';
}
$box .= '</div>';
return $box;
}
我想在<div class="images">
之后打破循环并在<div class="Bar">
之后继续循环。但我对此问题感到困惑。请告诉我正确的方法。
提前致谢
答案 0 :(得分:2)
两个选项:
两次循环。
或
将每个部分存储在一个单独的变量中,稍后将其合并,即
function Bar($array){
foreach($array as $key => $value){
$images .= ' <a href="#"><img src="'.$value['image'].'" alt=""></a>';
$bar .= ' <a href="#"><span>....</a>';
}
$box .= '<div class="images">';
$box .= $images;
$box .= '</div>';
$box .= '<div class="Bar">';
$box .= $bar;
$box .= '</div>';
return $box;
}
答案 1 :(得分:1)
function Bar($array){
$divImage=$divBar=array();
foreach($array as $key => $value){
$divImage[]= " <a href='#' ><img src='{$value['image']}' alt=''></a>";
$divBar[]= " <a href='#' rel='$key' ><span>$key</span>Cat$key</a>";
}
$divImage="<div class='images'>".implode("\r\n",$divImage)."</div>";
$divBar="<div class='bar'>".implode("\r\n",$divBar)."</div>";
$box="<div class='wins'>
$divImage
$divbar
</div>";
return $box;
}
答案 2 :(得分:0)
也许是这样的?
$divimg = '<div class="images">';
$divbar = '<div class="Bar">';
foreach(...) {
$divimg .= ' ... ';
$divbar .= ' ... ';
}
$divimg .= '</div>';
$divbar .= '</div>';
$divimg .= $divbar;
return $divimg;