2010-10-28 122 views
1

我有在foreach循环嵌入式HTML的一个问题: HTML:HTML在foreach循环

<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">之后继续循环。但林混淆这个问题。请给我看看正确的方法。 在此先感谢

回答

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; 
} 
0

也许这样的事情?

$divimg = '<div class="images">'; 
$divbar = '<div class="Bar">'; 

foreach(...) { 
    $divimg .= ' ... '; 
    $divbar .= ' ... '; 
} 

$divimg .= '</div>'; 
$divbar .= '</div>'; 

$divimg .= $divbar; 

return $divimg; 
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; 
}