多重判断php d代码,多重条件判读查询,代码如何优化?

大概是这么个思路,没有用类的方式,看懂就行function build_filter($mapParam, $mapConfig)

{

$arrFilter = [];

foreach($mapParam as $k => $v)

{

if(array_key_exists($k, $mapConfig) === false)

continue;

$op = $mapConfig[$k];

if(is_callable($op) === true)

{

$arr = call_user_func($op, $v);

foreach($arr as $filter)

array_push($arrFilter, $filter);

}

else

{

$arrFilter[] = [$k, $op, $v];

}

}

return $arrFilter;

}

$requestParams = [

'id' => 2,

'name' => 'test',

'dates' => '2020-11-01,2020-11-02',

];

$mapFilterConfig = [

'id' => '=',

'name' => '=',

'score' => '>',

'dates' => function($data){

$arrDate = explode(',', $data);

return [

['date', '>', $arrDate[0]],

['date', '

];

},

];

$arrFilter = build_filter($requestParams, $mapFilterConfig);

var_dump(json_encode($arrFilter, JSON_UNESCAPED_UNICODE));

输出 [["id","=",2],["name","=","test"],["date",">","2020-11-01"],["date","

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值