$data = json_decode($json, true);
$result = array_filter(
$data,
function ($value) use ($params) {
if(isset($params["payment"]) && !in_array($params["payment"], $value['payment_methods'])) {
return false;
}
if(isset($params["reviews"]) && $params["reviews"] > $value['reviews']) {
return false;
}
if(isset($params["amount"]) && $params["amount"] > $value['seller_buyer_limit_max']) {
return false;
}
//Код для остальных фильтров если надо
return true;
}
);
Анонимную функцию можно вынести в переменную или отдавать какой то другой функцией. Например:
function binanceFilterFn($params) {
return function($value) use ($params) {
if(isset($params["payment"]) && !in_array($params["payment"], $value['payment_methods'])) {
return false;
}
//...
}
}
$result = array_filter($data, binanceFilterFn($params));