首先请原谅我,我是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'];
}
?>
但是,当我这样做时,我收到了非法的字符串偏移错误消息。
答案 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'];
}
}