php两个foreach嵌套

有两个二维数组,分别是两个表的内容,表A是需要使用到的数据,表A中的'hzs'字段内存放的是表B的'id',现需要把表A的'hzs'字段的内容改为表B的'name'字段的内容,以下代码在thinkphp5.0中使用正常,在5.1中没效果,请大神帮我看下。

   public function index(){
        $financeKxs = db('finance_kx')->select();    
        $hzs = db('cooperate')->select();    
        foreach ($financeKxs as $key => $value) {
            foreach ($hzs as $k => $v) {
                if($value['hzs']==$v['id']){
                    $value['hzs'] = $v['name'];
                }
            }
            //dump($value['hzs']);  在这里是可以看到已经改变了
        }
        dump($financeKxs);    这里就没有效果了
    }
阅读 5.5k
4 个回答
foreach ($financeKxs as $key => $value) {
    foreach ($hzs as $k => $v) {
        if($value['hzs']==$v['id']){
            $financeKxs[$key]['hzs'] = $v['name'];
        }
    }
}

要么赋值给原数组,要么引用传递,你改的是copy出来的value。

 
foreach ($financeKxs as $key => &$value) {
            foreach ($hzs as $k => $v) {
                if($value['hzs']==$v['id']){
                    $value['hzs'] = $v['name'];
                }
            }
        }

二维数组在遍历的时候用一个foreach不就可以了吗?三维数据遍历的时候貌似才用两个foreach的.

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