在codeigniter中查看来自foreach的数据

时间:2015-02-06 07:25:38

标签: php codeigniter foreach

首先请原谅我,我是codeigniter框架的初学者。我想在视图中显示父数组的所有子内容。我假设我的数据检索部分已完成,现在我需要知道如何使用foreach获取值。我使用foreach但是我收到错误(非法字符串偏移)。这是我到达我的页面的var_dump值。

array(1) {
  ["post"]=>
  array(6) {
    ["post_id"]=>
    string(2) "52"
    ["status"]=>
    string(29) "This is a test status update."
    ["user"]=>
    string(1) "1"
    ["time"]=>
    string(19) "2015-02-05 19:47:42"
    ["modified"]=>
    string(19) "0000-00-00 00:00:00"
    ["comment"]=>
    array(2) {
      [0]=>
      array(3) {
        ["comment_id"]=>
        string(1) "3"
        ["comment"]=>
        string(22) "This is a test comment"
        ["comment_datetime"]=>
        string(19) "2015-02-06 08:36:15"
      }
      [1]=>
      array(3) {
        ["comment_id"]=>
        string(1) "5"
        ["comment"]=>
        string(11) "sdfsdfsdfds"
        ["comment_datetime"]=>
        string(19) "2015-02-06 09:33:25"
      }
    }
  }
}

我尝试过这样的数据:

<?php
    foreach($post as $data){
     $data['status'];
     $data['post_id'];
    }
?>

但是,当我这样做时,我收到了非法的字符串偏移错误消息。

7 个答案:

答案 0 :(得分:1)

如果你清楚地看一下数据

 $data['post_id'];  

不在你的数组中,它存在于$ data [&#39; post&#39;]中的数据中,数组中有数组..所以你需要相应地查找数据。

要访问代码中的键和值,您可以使用

  foreach($post as $key=>$value){
  // $key will have the keys and $value will have the corresponding values 
  }

答案 1 :(得分:1)

在将数据传递给视图之前将当前($ dataset)传递给视图。所以你可以通过$ post ['commnents']

来访问它
$this->load->view('your_view_name',current($data_set_passing));

答案 2 :(得分:0)

你应该使用

foreach ($post['post'] as $data) 

如果要打印的数组名为$ post,您可以看到这是一个嵌套数组。

答案 3 :(得分:0)

试试这段代码

<?php
    foreach($post as $data){
     $data['post']['status'];
     $data['post']['post_id'];
    }
?>

答案 4 :(得分:0)

由于posts数组是关联数组,因此最好在foreach中使用$ posts ['post']。这是我分享的链接,以解决http://goo.gl/W7JgAQ

答案 5 :(得分:0)

试试这个..

<?php
    foreach($post->result_array() as $data){
     $data['status'];
     $data['post_id'];
    }
?>

答案 6 :(得分:0)

试试这个你会得到你想要的结果:

foreach($posts as $data)
    {

        echo $data['post_id'];
        echo $data['status'];
        echo $data['user'];
        echo $data['time'];
        echo $data['modified'];
        foreach($data['comment'] as $sub)
            {
                echo $sub['comment_id'];
                echo $sub['comment'];
                echo $sub['comment_datetime'];
            }
    }