laravel使用两次循环给对象添加属性无效

使用一次循环添加时可以 为什么使用两次循环后添加就添加不上?如果在最里面的foreach循环里面打印 可以看到是已经添加上了 但是到最外面打印却显示没添加上

$res=DB::table('blog')->get();
foreach($res as $k=>$v){
        $href=$v->href;
        $v->name='aaa';  这样添加后可以在foreach的最外面打印出来
        $res2=DB::table('comment')->where('href',$href)->get();
        foreach($res2 as $k2=>$v2){
            $v->comment2=$v2->content;//但是这样添加在foreach的最外面却打印不出来 
            $v->time2=$v2->time;  
            $v->uid2=$v2->uid;  
            $v->name2='bbb';  
        }
}
var_dump($res);
阅读 3.8k
4 个回答

在$v前面加个&

会不会是没有进入到第二个foreach中去

发输出图. 如果是对象, 这样处理没错.

使用$res[$k] 来替换 $v,本身你在循环中给$v中的增加name属性对原数组根本没影响,除非你$v采用引用方式,不然你要修改$res这个源

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题