1

テーブルをクエリするときに配列の配列を返す関数があります。各'subarray'はテーブル内の行です。次に、' 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] =>
)
4

1 に答える 1

3

$columnラムダにインポートしていません:

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

編集これは、関数を呼び出していることを前提としてfetchColumn('column')おり、$array実際にのコンテキスト内に存在しますfetchColumn。あなたのコードでは、そうではありません...

于 2012-01-26T22:24:14.720 に答える