【问题标题】:Codeigniter nested foreach in slideshow?Codeigniter在幻灯片中嵌套foreach?
【发布时间】:2026-02-10 11:00:01
【问题描述】:

我在其他帖子上问过这个https://*.com/a/14277726/1670630,但我的问题仍然存在。 在 codeigniter 2.1 中,我试图按类别显示频道。因此,如果我有一个名为 Film 的类别,我应该会看到 Film 中的频道列表。我尝试了一个嵌套的 foreach 循环来完成此操作,但似乎无法让它在幻灯片中工作并限制行数。 我的模型:

<?php

class Pages_model extends CI_Model {


function get_channels_by_categ_tv()
{

  $this->db->select('categories.category_name, channels.channel_name');
  $this->db->from('type_categ');
  $this->db->join('categories', 'categories.category_id = type_categ.category_id');
  $this->db->join('channels', 'channels.channel_id = type_categ.channel_id');
  $this->db->order_by('categories.category_id');
//$this->db->group_by(array('categories.category_id')); 
  $query = $this->db->get();

  if($query->num_rows() == 0)
  {
    #no channels
    return false;
  }

  return $query->result_array();
}

}

我在视图中有这个:

<ul class="slides">
   <li>
      <?php $cat_shown = ''; ?>
         <div class="programe-tv_link">
                <?php $cat_show = ''; $cnl_show = '';?>
                <?php foreach ($category_chaneels as $category): ?>
                    <?php
                    if ($cat_show != $category['category_name']) {
                        $cat_show = $category['category_name'];
                        echo '<p>' . $cat_show . '</p>'; 
                    }
                    $cnl_show = $category['channel_name'];
                    echo '<dd><a href=""> >>' . $cnl_show . '</a></dd> '; 
                    ?>    
                <?php endforeach; ?>  
          </div>
     </li>
     <li>
              <div class="programe-tv_link">
                    <p>Arte</p>
                   <dd> <a href="">>> Acasa</a></dd>
                   <dd> <a href="">>> Antena 1</a></dd>
                   <dd> <a href="">>> Pro TV</a></dd>
                </div>
                <div class="programe-tv_link">
                    <p>Music Box</p>
                   <dd> <a href="">>> Acasa</a></dd>
                   <dd> <a href="">>> Antena 1</a></dd>
                   <dd> <a href="">>> Pro TV</a></dd>
                   <dd> <a href="">>> TLC</a></dd>
                </div>
      </li>
  </ul>

我用插图添加图像,

对不起我的英语,如果你不理解我,请写在这里。提前 THX。

【问题讨论】:

  • 您的意思是(3 个频道/1 个类别)?
  • 嗨 semsem。每页 3 个类别,但频道(无限制)。你能帮我吗?
  • 这是一个 javascript 问题,不是 php 或 codeigniter 问题,它取决于您用来隐藏和显示幻灯片的方法

标签: codeigniter loops foreach nested


【解决方案1】:

我的结局代码是这样的。

    <div id="programe-tv-slide" class="flexslider">
        <strong>Programe TV</strong>
        <div class="redLine"></div>

        <?php $cat_cnl = array(); 
              $list = array(); 
              $i=1;
                 foreach ($category_chaneels as $option) { 
                    $catname = $option['category_name'];
                    $chlname = $option['channel_name'];

                    $cat_cnl[$catname][$i] = $chlname;
                    $list[$i] = $catname;
              $i++;
                 }; 
        ?>
        <?php 
            $rows = array_chunk($cat_cnl, 4, TRUE);
            foreach ($rows as $row) {  //var_dump($rows);
        ?>

          <ul class="slides">    
            <?php
                echo ('<li>');
                foreach ($row as $category => $channels) {
                    echo '<div class="programe-tv_link">'; 
                    echo '<p>' . $category . '</p>'; 
                        foreach ($channels as $channel) {
                                echo '<dd><a href="">' . $channel . '</a></dd> '; 
                        };
                    echo '</div>'; 
                    };      
                echo ('</li>'); 
            ?>
          </ul>
          <?php }; ?>
    </div>

【讨论】: