下面是一个示例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
函数,并传入过滤器数组,我们可以动态构建查询过滤器,并将其应用于查询操作中。