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);    这里就没有效果了
    }
翻翻过去那场雪
浏览 1273回答 4
4回答

叮当猫咪

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

慕田峪9158850

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

陪伴而非守候

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

UYOU

二维数组在遍历的时候用一个foreach不就可以了吗?三维数据遍历的时候貌似才用两个foreach的.
打开App,查看更多内容
随时随地看视频慕课网APP