php array_filter的正确语法?

时间:2015-12-05 10:38:05

标签: php

这是我的代码,在Warning: Missing argument 2 for {closure}() in the first line

中抛出错误
$all_together = array_filter($info,function($each_one,$extra){

    $op = $each_one["something"];

    if($op <= $extra) return $each_one["what_I_need"];

});

我需要使用$ extra参数,独立于输入数组元素。 我到底错过了什么? tyvm

2 个答案:

答案 0 :(得分:2)

似乎缺少use个关键字。试试这个:

$all_together = array_filter($info, function($each_one) use ($extra) {
    $op = $each_one["something"];
    if($op <= $extra) return $each_one["what_I_need"];
});

答案 1 :(得分:0)

据我所知,数组滤波器应该像这样使用:

<?php
function test_odd($var)
{
return($var & 1);
}

$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));
?>

现在只将指定数组的每个元素传递给函数,如果必须传递另一个参数,则在函数定义中为该参数提供默认值。