温馨提示×

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

PHP
小樊
82
2024-04-26 20:46:51
栏目: 编程语言

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

0