使用PHP递归函数动态构建查询过滤器

avatar
作者
筋斗云
阅读量:0

下面是一个示例PHP递归函数,用于动态构建查询过滤器:

function buildFilter($filters) {   $filterStr = "";    foreach ($filters as $key => $value) {     if (is_array($value)) {       $filterStr .= "(" . buildFilter($value) . ")";     } else {       $filterStr .= "$key = '$value'";     }      if ($key !== array_key_last($filters)) {       $filterStr .= " AND ";     }   }    return $filterStr; }  $filters = [   "name" => "John",   "age" => 25,   "or" => [     "city" => "New York",     "state" => "California"   ] ];  $filter = buildFilter($filters);  echo $filter; 

在这个示例中,我们定义了一个buildFilter函数,该函数接受一个数组作为参数,并递归构建查询过滤器。过滤器数组中的每个键值对表示一个过滤条件,如果值是一个数组,则表示多个条件之间是“或”关系。

通过调用buildFilter函数,并传入过滤器数组,我们可以动态构建查询过滤器,并将其应用于查询操作中。