array_map简化数组,我做错了什么?

时间:2012-01-26 22:22:39

标签: php array-map

我有一个函数在查询表时返回一个数组数组,每个'子数组'是表中的一行,现在我想创建一个'fetchColumn'函数来转换我生成的数组:

Array(
    [0] => Array(
        'column' => 'value'
    )
    [1] => Array(
        'column' => 'value'
    )
    [2] => Array(
        'column' => 'value'
    )
)

进入这个:

Array(
    [0]=>value
    [1]=>value
    [2]=>value
)

这是功能:

public static function fetchColumn($column)
    {
        $callback = function($value){
            return $value[$column];
        };        
        return array_map($callback,$array); // $array exists
    }

我明白了:

Array
(
    [0] =>
    [1] =>
    [2] =>
)

1 个答案:

答案 0 :(得分:3)

您没有将$column导入您的lambda:

$callback = function($value) use ($column) {
    return $value[$column];
};       

编辑这假设您正在调用函数fetchColumn('column'),而$array确实 存在于{{1}的上下文中}。在你的代码中,它没有......