go for while Go for 循环有时候真的很坑。。。
大家好,我是煎鱼。不知道有多少 Go 的面试题和泄露,都和 for 循环有关。今天我在周末认真一看,发现了 redefining for loop variable semantics 。著名的硬核大
顺晟科技
2022-09-15 11:38:03
170
    public function batch(Request $request)
    {
        $ids =  $request->input('id');  //["1","2"]
        $tags = $request->input('tags'); //["发货","新产品"]
        $Influencers = Influencers::whereIn('id', $ids)->pluck('tags')->toArray(); 
        //数据库里面的标签 ["发货","新产品"]
        foreach ($Influencers as $Influencer) {
            $dbTags = explode(',', preg_replace('/\s+/', '', $Influencer));
            foreach ($tags as $tag) {
                foreach ($dbTags as $t) {
                    foreach ($ids as $id) {
                        if ($t === $tag) { 
                        //我想用户传进来了的标签 跟数据库的标签进行一个判断如果不存在在添加 如果存在就不添加,
                            Influencers::where('id', $id)->update(['tags' => DB::raw("CONCAT_WS(',', tags, ' $t')")]);
                        } else {
                            print "<li>$t - $tag -  $id</li>";
                        }
                    }
                }
            }
        }
    }
我测试了很多方法都不知道怎么解决,
我想用户传进来了的标签 跟数据库的标签进行判断如果不存在在添加 如果存在就不添加,
举个例子:
比如数据库已经有 拒绝,成功,就不做任何的操作
如果数据库只有,拒绝,用户如果传过来是 ['拒绝','成功'] 就吧成功添加进去
所有传进来的数据都是[数组]
这么多层嵌套循环,应该做优化
02
2022-11
24
2022-10
19
2022-10
19
2022-10
15
2022-10
15
2022-09