我将以下两个数组作为输入数据:
$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
}
]