1

データベース クエリ (Google BigQuery) の結果として得られる、次のような配列があります。

Array
(
    [0] => Array
        (
            [points] => 95
            [user] => 434
            [type] => 20
            [identifier] => tv
            [date] => 2016-11-01
        )

    [1] => Array
        (
            [points] => 349
            [id] => 2989631
            [type] => 20
            [identifier] => app
            [date] => 2016-11-01
        )
) 

識別子用の別のもの:

Array
(
    [tv] => 1
    [app] => 2
)

私がする必要があるのは、識別子キーが識別子配列からの対応する値を持っているので、配列を変換することです。したがって、次のようになります。

Array
(
    [0] => Array
        (
            [points] => 95
            [user] => 434
            [type] => 20
            [identifier] => 1
            [date] => 2016-11-01
        )

    [1] => Array
        (
            [points] => 349
            [id] => 2989631
            [type] => 20
            [identifier] => 2
            [date] => 2016-11-01
        )
) 

Laravel コレクションを使用してこれを行うにはどうすればよいですか?

変換関数を試してみましたが、多次元配列から特定の列を返すというアイデアが得られませんでした。

4

2 に答える 2

1

使用できますarray_map()

$identifiers = [
    'tv' => 1,
    'app' => 2
];

$result = array_map(function($item) use ($identifiers) {
    $item['identifier'] = $identifiers[$item['identifier']];
    return $item;
}, $itemsArray);
于 2016-11-09T09:27:42.867 に答える
0

おそらく、ここでの最善の解決策はacessorを使用することです:

public function getIdentifier($value)
{
    return $identifiersArray[$value];
}

これを行うと、コレクションを再構築する必要がなくなります。

于 2016-11-09T09:13:39.293 に答える