2013-09-27 287 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關閉和範圍確定