我有一个这样的数组,我通过数据库查询(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集合执行此操作?
我一直在尝试使用transform函数,但没有想到从多维数组返回特定列。
答案 0 :(得分:1)
您可以使用array_map()
:
$identifiers = [
'tv' => 1,
'app' => 2
];
$result = array_map(function($item) use ($identifiers) {
$item['identifier'] = $identifiers[$item['identifier']];
return $item;
}, $itemsArray);
答案 1 :(得分:0)
这里最好的解决方案可能是使用acessor:
public function getIdentifier($value)
{
return $identifiersArray[$value];
}
如果您这样做,则无需重建您的收藏。