foreach循环中的html

时间:2010-10-28 21:37:08

标签: php

我在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">之后继续循环。但我对此问题感到困惑。请告诉我正确的方法。 提前致谢

3 个答案:

答案 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;