Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从查询创建多维数组?_Php_Codeigniter_Multidimensional Array - Fatal编程技术网

Php 如何从查询创建多维数组?

Php 如何从查询创建多维数组?,php,codeigniter,multidimensional-array,Php,Codeigniter,Multidimensional Array,我有两张桌子: category(id_cat,cat_name) sub_cat(id_cat,id_sub_cat,sub_cat_name) 我想通过连接这些表来创建视图。我创建了一个控制器,代码如下: $d['category'] = $this->db->query('select * from category a left join sub_cat b on a.id_cat=b.id_cat'); $this->load->view('cat',$d

我有两张桌子:

category(id_cat,cat_name)  
sub_cat(id_cat,id_sub_cat,sub_cat_name)
我想通过连接这些表来创建视图。我创建了一个控制器,代码如下:

$d['category'] = $this->db->query('select * from category a left join sub_cat b on a.id_cat=b.id_cat');
$this->load->view('cat',$d);
我的看法是:

<table><tr><th>Cat Name</th><th>Sub Cat Name</th></tr> 
<?php foreach($category->result_array() as $dt) { ?>
<tr><td><?php echo $dt['cat_name'] ?></td><td><?php echo $dt['sub_cat_name']?></td></tr>
<?php } ?>
</table>
但我希望视图是这样的:

$d['category'] = $this->db->query('select * from category a left join sub_cat b on a.id_cat=b.id_cat');
$this->load->view('cat',$d);
------------------------
类别名称|子类别名称
------------------------
第1类|子1
|次级2
|子3
------------------------
第2类|子1
|次级2
------------------------

您可以使用
temp
变量来存储
cat\u名称
,并检查该
cat\u名称
是否已被使用,否则它将不会在您的视图中回显:

<?php
    $temp = '';
    foreach($category->result_array() as $dt) {
        if ($dt['cat_name'] != $temp) {
            echo $dt['cat_name'];
            $temp = $dt['cat_name'];
        }
    }
?>

你也可以把它放进函数中,这样在你看来会很混乱。希望这有帮助。注意:建议必须在方法(helper)文件上对查询进行格式化,这样您就不会有fat控制器

编辑


你可以在这里查看小提琴:

我重新编排了标题以减少并添加了一些标记以提高可视性,然后修复了格式和语法。请发送你的数组格式好吗?我已经尝试过了,但是
cat_name
根本没有回声。我已经将条件语句从
equals(=)
编辑到
notequals(!=)
请再试一次。对不起,我的错。我试过了这里是我小提琴的链接,