为了账号安全,请及时绑定邮箱和手机立即绑定

函数不会在内部运行两次 - if else - 语句

函数不会在内部运行两次 - if else - 语句

PHP
海绵宝宝撒 2021-06-01 12:51:05
我想做一个条形码查找。第一次尝试时,会在用户条形码上本地查找条形码。如果 是重复的,则该函数返回第一个实例,并带有文本“在本地找到”如果在本地找不到条形码,则应进行全局搜索。当在本地找不到条形码时,我遇到的问题是 if else 语句。如果在本地找不到它,它应该检查是否在全局范围内找到它。public function updatePricelist(Request $request)    {        $user_id = Auth::user()->id;        $counter = count($_POST["product_name"]);        //product barcode        for ($x = 0; $x < $counter; $x++) {            $product_barcode[] = $_POST["product_barcode"][$x];        }        //check the barcode locally        $result = $this->barcodeLookUp($product_barcode, 'local');        if (!empty($result)) {           $result =  "found locally";        }        else {            $result = $this->barcodeLookUp($product_barcode, 'global');            if (!empty($result)) {                $result =  "found globally";            }        }        return $result;    }    public function barcodeLookUp($product_barcode, $type)    {        $user_id = Auth::user()->id;if ($type === 'local') {            $db_barcodes = $this->getBarcodes($user_id, 'local');        }        if ($type === 'global') {            $db_barcodes = $this->getBarcodes($user_id, 'global');        }        //merge arrays        $merge_array = array_merge($db_barcodes, $product_barcode);        function array_dup($ar)        {            return array_unique(array_diff_assoc($ar, array_unique($ar)));        }        $result = array_dup($merge_array);        return current($result);    }    public function getBarcodes($user_id, $type)    {        if ($type === 'local') {            $result = DB::select('SELECT products FROM vendor_pricelist WHERE user_id = ?', [$user_id]);        }        if ($type === 'global') {            $result = DB::select('SELECT products FROM vendor_pricelist WHERE user_id != ?', [$user_id]);        }        $count_results = count($result);        $temp = [];        $temp_2 = [];        for ($x = 0; $x < $count_results; $x++) {            array_push($temp, json_decode($result[$x]->products));        }
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

这可能有帮助:


    //check the barcode locally

    $result = $this->barcodeLookUp($product_barcode, 'local');


    if (empty($result)) {

        $result = $this->barcodeLookUp($product_barcode, 'global');


        if (!empty($result)) {

            return [

                "message" => "found globally",

                "result"  => $result,

            ];

        }


        return [

            "message" => "not found",

            "result"  => null,

        ];

    } else {

        return [

            "message" => "found locally",

            "result"  => $result,

        ];

    }


查看完整回答
反对 回复 2021-06-04
  • 2 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信