2

如何将多维度数组传递给视图?控制器代码

       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>');
                }
            }?>
4

3 回答 3

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>";
}
于 2012-06-17T14:06:10.903 回答
1

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

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

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

于 2012-06-17T13:40:08.253 回答
-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
                )

        )

)
于 2016-08-11T17:19:05.540 回答