0

我有一个数组$new_data,结果print_r($new_data['comments']);如下

Array (
    [id] => 1 
    [uye] => yusufalibozkir 
    [yorum] => Saffet gel beni affet 
    [post] => 1 
)

但是当我想使用 foreach 循环打印我的数据时:

foreach($new_data['comments'] as $comments)
{
    echo $comments['id'];
}

结果:

1yS1 

任何帮助将不胜感激。

编辑:

这个问题可能如下所示,我正在创建如下数组:

$comments = $this->post_model->getComments($data['id']);
            foreach($comments as $comments)
            {
                $comments['uye'] = $this->members_model->lognick($comments['uye']);
            }

实际上,它需要在主数组中有 2 个数组。因为我的表有 2 行。但它只返回最后一个数据。

4

5 回答 5

2

问题是当你做一个 foreach 它实际上是返回数组中的每个对象,所以当你放入索引时,它是字符串的索引......只需删除你的 echo 中的索引

echo $comments;
于 2013-05-01T12:48:49.843 回答
2
$comments = $this->post_model->getComments($data['id']);
foreach($comments as $comments)
{
    $comments['uye'] = $this->members_model->lognick($comments['uye']);
}

此代码是 PHP 意外行为的示例。注意foreach($comments as $comments)两边as都是同一个变量,所以最终你的原始变量被里面$comments的最后一个值覆盖,并减少到评论的值数组而不是评论数组,你得到$commentsforeach

Array (
    [id] => 1 
    [uye] => yusufalibozkir 
    [yorum] => Saffet gel beni affet 
    [post] => 1 
)

而不是包含此类数组的数组。

修复它如下

$comments = $this->post_model->getComments($data['id']);
foreach($comments as $key => $comm)
{
    $comments[$key]['uye'] = $this->members_model->lognick($comm['uye']);
}

并且您的原始代码应该可以正常工作。

于 2013-05-01T13:04:45.167 回答
1

试试这个代码

<?php 

$new_data['comments'] =array('id' => 1 ,'uye' => 'yusufalibozkir', 'yorum' => 'Saffet gel beni affet','post' => 1);
foreach($new_data['comments'] as $comments)
            {
                echo $comments."<br/>";
            }
?>

//output: 1
          yusufalibozkir
          Saffet gel beni 
          affet
          1
于 2013-05-01T12:51:39.630 回答
1

尝试这个

foreach($new_data['comments'] as $comments)
{
    echo $comments."<br>"; //replace with $comments['id'];
}

输出

1
yusufalibozkir
Saffet gel beni 
affet
1
于 2013-05-01T12:54:08.963 回答
1

如果您有字符串,则必须使用"". 例如:

[yorum] => "Saffet gel beni affet",

如果你制作一个数组,你必须使用,来分隔元素。

于 2013-05-01T12:57:33.547 回答