来自JSON的PHP array_filter动态过滤器

时间:2015-06-28 00:50:53

标签: php arrays json dictionary

我将以下两个数组作为输入数据:

$filters = 
  [
    {
      "Key": "ao",
      "Value": "5",
      "FilterComperator": ">=",
      "FilterOperator": " && "
    },
    {
      "Key": "name",
      "Value": "Joe",
      "FilterComperator": "<>",
      "FilterOperator": " && "
    },
    {
      "Key": "ao",
      "Value": "10",
      "FilterComperator": "<=",
      "FilterOperator": " && "
    }
  ]


$arr = [
    {
      "id":1,
      "ao": 13
    },
    {
      "id":2,
      "ao": 10
    },
    {
      "id":3,
      "ao": 6
    }
]

我想要实现的是使用$filters数组中的过滤器 所以我可以在不使用php eval的情况下过滤$arr

return array_filter($arr, function($k){
   return $k->ao >= '5' && $k->name <> 'Joe' && $k->ao <= '10';
});

有什么建议吗?也许我可以使用create_function()或其他任何可以完成工作的东西。

Desired Output是一个使用过滤条件的数组,如下所示:

 $output = [
        {
          "id":2,
          "ao": 10
        },
        {
          "id":3,
          "ao": 6
        }
    ]

0 个答案:

没有答案