【问题标题】:PHP CodeIgniter Foreach Returning Incorrect DataPHP CodeIgniter Foreach 返回不正确的数据
【发布时间】:2014-09-02 10:16:12
【问题描述】:

你好很棒的程序员!

对于这个新手问题,我感到非常抱歉,但是,我无法找到解决问题的方法。我试图通过从我的控制器传递的数组运行一个 for each 循环,但是,输出的数据与我运行 var_dump($array) 时的数据不同。我在想也许我需要遍历这个对象?但是,当我尝试这样做时,我得到了一个非对象错误。

控制器:

$data['user_details'] = $this->ion_auth->user()->row();

查看:

var_dump($user_details);
    foreach($user_details as $item){
        echo $item['email'];
    }

它的输出是:“21nfn4111NR12”,但应该是 roger@peterson.net!

我也试过对象形式:

var_dump($user_details);
    foreach($user_details as $item){
        echo $item->email;
    }

但是,尝试获取非对象的属性会导致错误!

当我运行 var dump 时,我得到以下信息:

object(stdClass)#21 (17) {
  ["id"]=>
  string(1) "2"
  ["ip_address"]=>
  string(14) "119.132.127.01"
  ["username"]=>
  string(12) "roger petereson"
  ["password"]=>
  string(40) "fdZxF/RQo4nZKmbA5XQlwefbc8f8e5c74899c3d0"
  ["salt"]=>
  NULL
  ["email"]=>
  string(19) "roger@peterson.net"
  ["activation_code"]=>
  NULL
  ["forgotten_password_code"]=>
  NULL
  ["forgotten_password_time"]=>
  NULL
  ["remember_code"]=>
  string(22) "44hjOlloLTIrkSrjSBVNie"
  ["created_on"]=>
  string(10) "1404939094"
  ["last_login"]=>
  string(10) "1405099607"
  ["active"]=>
  string(1) "1"
  ["first_name"]=>
  string(6) "Roger"
  ["last_name"]=>
  string(5) "Peterson"
  ["is_owner"]=>
  string(1) "1"
  ["user_id"]=>
  string(1) "2"
}

【问题讨论】:

    标签: php mysql codeigniter foreach


    【解决方案1】:

    下面一行:

    $this->ion_auth->user()->row(); 
    

    返回一个object 而不是array(检查你的var_dump 输出),所以你只需要

    echo $user_details->email;
    

    【讨论】:

    • 感谢您的回复 koala_dev!这完美地工作。如果 $user_details 返回多行,我会为每个使用一个吗?
    • 非常感谢您的帮助!抱歉,这是一个菜鸟问题。
    • 你在模型函数中使用 ->result() 来返回结果数据吗?
    • @user3750179 没问题,请记住将此答案标记为已接受,让社区知道您的问题现已解决。
    猜你喜欢
    • 1970-01-01
    • 2022-12-02
    • 2013-12-18
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    相关资源
    最近更新 更多