阅读量: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
函数,并传入过滤器数组,我们可以动态构建查询过滤器,并将其应用于查询操作中。