2015-02-06 88 views
0

首先原諒我,我是codeigniter框架的初學者。我想在視圖中顯示父數組的所有子內容。我假設我的數據檢索部分已經完成,現在我需要知道如何使用foreach獲取值。我用foreach,但我得到錯誤(非法字符串偏移量)。這是我得到我的頁面的var_dump值。查看codeigniter中的數據

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

但是,當我做到這一點我得到非法串偏移錯誤消息。

+0

嘗試在foreach循環中打印值 – john 2015-02-06 07:30:33

回答

0

您應該使用

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

如果要打印的數組稱爲$後,你可以看到這是一個嵌套數組。

1

如果您在數據

$data['post_id']; 

是不是你的數組中清楚地看,它的存在在$數據[「後」]中的數據,有陣內陣..所以你需要相應地查找數據。

爲了在代碼訪問鍵和值,你可以使用

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

如何定義$ key和$ value? – 2015-02-06 07:59:14

+0

$ key和values已經存在.. – 2015-02-06 08:04:00

0

試試這個代碼

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

由於帖子數組是關聯數組,你最好使用$帖[」後']而不是在foreach。這裏是我分享的鏈接來解決它http://goo.gl/W7JgAQ

1

在您將數據傳遞到視圖之前把當前($ dataset)並傳遞它來查看。所以,你可以通過$訪問後[ 'commnents']

$this->load->view('your_view_name',current($data_set_passing)); 
0

試試這個..

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