在codeigniter视图中嵌套的foreach

时间:2015-05-29 13:50:25

标签: php mysql codeigniter activerecord foreach

我有4个表:进程,国家/地区,进程国家和类别。每个流程属于某个类别。一个国家/地区可能有多个流程可用,并且可能在多个国家/地区提供流程。以下是我的数据库结构:

t: 0x93a0008, s: 0x93a0070, sizeof int*: 4
 reg 0x93a0070
 reg (nil)

我创建了一些函数来获取每个国家/地区的所有可用流程 我想在相应的类别下显示流程,但我不知道如何实现。我可以单独列出所有进程和类别,但我不知道如何嵌套它们。我想为每个国家/地区创建一个包含这样列表的页面:

category table       process table        country table      process_country
--------------       --------------       -------------      ---------------
categoryid           processid            countryid          countryid
categoryname         processname          countryname        processid
                     categoryid
                     countryid

我在想一个嵌套的foreach循环:

>  1. Category 1
>        Process 1
>        Process 2
>  2. Category 2
>        Process 3

但我不知道如何为该类别下的所有进程实现另一个foreach循环。

控制器:

<?php
        foreach ($category as $c) {
            echo "<li>" . $c->CategoryName . "</li>";
            foreach ($process as $r) {
                echo "<li><a href=\"" . base_url() . "index.php/process/id/" . $r->ProcessID . "\" target=\"_blank\">" . $r->ProcessName . "</a></li>";
            }
        }
    ?>

1 个答案:

答案 0 :(得分:1)

$data['process']内,您需要category ID和内部$data['category']

然后只有你可以匹配两者,例如foreach循环将如下所示

<?php
        foreach ($category as $c) {
            echo "<li>" . $c->CategoryName . "</li>";
            foreach ($process as $r) {
                if($r['cat_id']==$c['id']){
echo "<li><a href=\"" . base_url() . "index.php/process/id/" . $r->ProcessID . "\" target=\"_blank\">" . $r->ProcessName . "</a></li>";
       }

            }
        }
    ?>

如果两个Id匹配,那么您将打印它们!

快乐的编码!