从控制器传递多维数组以查看codeigniter

时间:2012-06-17 13:12:07

标签: codeigniter multidimensional-array

如何将多个缩小数组传递给视图? 控制器代码

       public function index(){

           data['navs'] =   array( 
            'name' => array('one', 'two', 'three'),
            'link' => array('one', 'two', 'three'));

            $this->load->view('adminView', $data);}

查看代码

        <?php if ($navs) {
                foreach ($navs as $nav) {
                echo('<li><a href="' . $nav->link . '">' . $nav->name . '</a></li>');
                }
            }?>

3 个答案:

答案 0 :(得分:4)

首先,你需要以正确的方式构建数组。它应该是这样的:

$data['navs'] = array( array(  'name'    =>  'one',
                               'link'    =>  'linkone'),

                       array(  'name'    =>  'two',
                               'link'    =>  'linktwo')    
                    );
$this->load->view('adminView', $data);

然后在你看来:

foreach($navs as $n){
  echo "<li><a href='{$n['link']}'>{$n['name']}</a></li>";
}

答案 1 :(得分:1)

在视图中,将您的数据称为数组元素,而不是对象属性(您传递的是数组数组,而不是对象数组)。根据您的控制器,您的视图代码应如下所示:

foreach ($navs as $nav) {
    echo('<li><a href="' . $nav['link'] . '">' . $nav['name'] . '</a></li>');
}

但是,由于$ nav ['link']和$ nav ['name']是两个数组,因此无法输出正确的结果。您需要调用他们的任何元素或相应地更改控制器。

答案 2 :(得分:-2)

如何使用php中的codeigniter控制器获取动态数组值

Array
(
    [id] => 2
    [name] => Wellness & Spa
    [isSelected] => true
    [subModules] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [name] => Spa1
                    [isSelected] => true
                    [0] => object:81
                )

            [1] => Array
                (
                    [id] => 2
                    [name] => Spa2
                    [isSelected] => true
                    [0] => object:82
                )

            [2] => Array
                (
                    [id] => 3
                    [name] => Wellness
                    [isSelected] => true
                    [0] => object:83
                )

        )

)