溫馨提示×

使用PHP遞歸函數動態構建查詢過濾器

PHP
小樊
94
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女