循环遍历数组并为每个元素打印HTML


Loop through array and print HTML dinamcly for each element

我试图通过包含对象的数组循环并打印出我需要的数据到我的HTML。这个HTML需要打印我的第一个元素,然后"创建"一个新的HTML显示我的第二个元素,等等…

这是我的PHP函数,我查询DB:

public function getCuponesUser(){
    $db = JFactory::getDbo();
    $user = JFactory::getUser()->id;
    $query = 'SELECT * FROM #__cuphoneo_subscripcion as cs LEFT JOIN #__k2_items as k2i ON k2i.id = cs.item_id WHERE cs.user_id='.$user.' GROUP BY cs.item_id';
    $db->setQuery($query);
    $resultado = $db->loadObjectList();
    return $resultado;
}

$resultado返回:http://pastebin.com/PSX7KMBq

这是我的HTML/PHP代码,我试图打印数据检索:

<div class="panel-group" id="accordion">
    <div class="panel panel-info">
 <?php  
    $model = $this->getModel();
    $cuponesUsuario[] = $model->getCuponesUser();
    foreach($cuponesUsuario as $valor){
    ?>
 <div class="panel-heading" data-toggle="collapse" data-parent="#accordion" data-target="#collapse1">
    <div class="panel-heading-left">
        <h4 class="panel-title accordion-toggle">
            Data 1
        </h4>
     </div>
     <div class="panel-heading-right">
        <h4 class="panel-title">
            Data 2
        </h4>
     </div>
</div>
<div id="collapse1" class="panel-collapse collapse">
  <div class="panel-body">
    <div class="panel-left">
        <div class="panel-image">
            Data 3
        </div>
        <div class="panel-fecha">
            <span class="label label-info">Data 4</span>
        </div>
    </div>
    <div class="panel-right">
        <div class="panel-desc">
        Data 5
        </div>
        <div class="panel-boton-canjear">
            <input class="btn" type="button" value="Canjear"/>
        </div>
    </div>
  </div>
</div>
    <?php } ?>

数据1,数据2,数据3…等,我需要打印出查询可能返回的不同值。

编辑:我很确定我也必须使用for,但不太确定如何做到这一点:p

如果$resultado已经表示你想要循环的数组,那么这是错误的:

$cuponesUsuario[] = $model->getCuponesUser();

就这样做:

$cuponesUsuario = $model->getCuponesUser();

foreach循环中,您可以这样访问数据:

<?php echo $valor->title; ?> 

问题出在你对语法的使用上:

$cuponesUsuario[] = //...

$var[]=语法在数组$var后面追加一个对象。因此,$cuponesUsario是一个只有一个元素的数组,而这个元素就是实际的数据结构。当您在数组上调用foreach()时,它只执行一次,因为数组中只有一个元素。

相反,删除[]并直接将结果分配给$cuponesUsario,因为它已经是数组数据。