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