2013-09-27 224 views
0

如何将变量“$ field”传递给lambda函数?将变量传递给lambda函数

function implode_assoc_array($array, $field) 
{ 
    // $ids = array_column($array, $field); PHP 5.5! 
    $ids = array_map(function($item) { return $item[$field]; }, $array); 
    return implode(', ', $ids); 
} 

implode_assoc_array($my_multidimensional_array, 'id'); 

消息:未定义的变量:场

回答

0
function implode_assoc_array($array, $field) 
{ 
    // $ids = array_column($array, $field); PHP 5.5! 
    $ids = array_map(function($item) use ($field) { return $item[$field]; }, $array); 
    return implode(', ', $ids); 
} 

implode_assoc_array($my_multidimensional_array, 'id'); 

如果要修改的变量使用

$ids = array_map(function($item) use (&$field) { return $item[$field]; }, $array); 

请参阅PHP manual page,示例3关闭和范围确定