PHP array_filter参数
我有以下代码:
function lower_than_10($i) { return ($i < 10);
}
我可以用来过滤这样的数组:
$arr = array(7, 8, 9, 10, 11, 12, 13);$new_arr = array_filter($arr, 'lower_than_10');
我如何在lower_than_10中添加参数,以便它也接受要检查的数字?喜欢,如果我有这个:
function lower_than($i, $num) { return ($i < $num);
}
如何从array_filter调用它传递10到$ num或任何数字?
回答:
作为@Charles使用闭包的解决方案]的替代方法,您实际上可以在文档页面的注释中找到示例。
class LowerThanFilter { private $num;
function __construct($num) {
$this->num = $num;
}
function isLower($i) {
return $i < $this->num;
}
}
用法(演示):
$arr = array(7, 8, 9, 10, 11, 12, 13);$matches = array_filter($arr, array(new LowerThanFilter(12), 'isLower'));
print_r($matches);
作为一个旁注,你现在可以更换LowerThanFilter
一个更通用的NumericComparisonFilter
用类似的方法isLower
,isGreater
,isEqual
等只是一个想法-和演示
…
以上是 PHP array_filter参数 的全部内容, 来源链接: utcz.com/qa/417422.html