将变量传递到回调php中



我在下面的功能并传递了一个数组。我还想将其传递一个字段(或键)名称,以使其可以重复使用。当我尝试在回调中传递$字段时,如下所示,我会发现未定义$字段的错误。如果我使用文字,它的作用很棒。

function array_map_recursive($array,$field) {
        $sum = 0;
        foreach ($array as $key => $value) {
           foreach ($value as $key2 => $value2) {
               $sum += array_sum(array_map(function($item){return $item[$field];},$value[$key2]));
           }
        }
        return $sum;
}

呼叫:

number_format(array_map_recursive($dept_catg_grp_descs,"total_ty_yest_sales"))
function ($item) use ($field) {return $item[$field];}

此"导入" $field变量到函数中。

简单:您需要声明要在关闭中使用的外部范围的哪些变量,例如:

function array_map_recursive($array,$field) {
    $sum = 0;
    foreach ($array as $key => $value) {
       foreach ($value as $key2 => $value2) {
           $sum += array_sum(array_map(function($item) use($field) {return $item[$field];},$value[$key2]));
       }
    }
    return $sum;
}

注意使用子句。

您应该通过'use'

传递参数

最新更新