使用Codeigniter访问多维数组

时间:2012-03-20 04:24:42

标签: php arrays codeigniter

好的,在我的Codeigniter项目中,我将多维数组传递给我的视图。我遇到的问题是访问数组中的数据。我使用print_r和var_dump来查看数组并将其正确传递给视图,但我最难访问其中的数据!我收到此错误消息,“尝试访问非对象的参数”。有什么建议吗?!

这是控制器:profile.php

    <?php
        class Profile extends CI_Controller {

            public function __construct(){
                parent::__construct();
                $this->load->library('session');

                //Get user data
                $this->load->model('user_model');

            }

            public function user_lookup(){
                //get usering users data
                $email = $this->session->userdata('email');
                //get profile users data
                $username = $this->uri->segment(2,0);

                $user = array(
                            'users' => $this->user_model->getUserData($email),
                            'profile' => $this->user_model->getUserDataWithUsername($username)
                        );

                $this->load->view('profile_view', $user);
            }

        }
    ?>

以下是接收数据的视图:profile_view.php

<!DOCTYPE html>
<html>
    <body>
        <?php
             print_r($users[0]);
        ?>
     </body>
 </html>

我的print_r语句的输出是:

Array([hometown] =&gt; Las Vegas [email] =&gt; johnmy@gmail.com [university] =&gt; UC Berkley [first_name] =&gt; Pete [last_name] =&gt; Smith [date] = &gt; 1992)1

1 个答案:

答案 0 :(得分:1)

根据您的代码:

$this->load->view('profile_view', $user);

这意味着您提供数组$user作为视图数据。因此,在视图$user上不再存在。

您只能在视图中使用它的元素:

<?php
    echo $hometown;
    echo $email;
?>

如果要在视图中使用$user数组,请在控制器中使用此视图加载代码:

$this->load->view('profile_view', array('user' => $user ));

您可以阅读有关Views in CodeIgniter的更多信息。