我的答案如下:
Array (
[0] => Array (
[0] => Array (
[Product] => 'Product1'
[Total] => $10
)
[1] => Array (
[Product] => 'Product2'
[Total] => $50
)
)
[1] => Array (
[0] => Array (
[Product] => 'Product1'
[Total] => $20
)
[1] => Array (
[Product] => 'Product2'
[Total] => $30
)
)
[2] => Array (
[0] => Array (
[Product] => 'Product1'
[Total] => $0
)
[1] => Array (
[Product] => 'Product2'
[Total] => $10
)
)
)
我希望获得Total
的{{1}}数组,但只能使用laravel collection。
我试过了:
Product1
当我打印$ data时,它显示空白数组;当我在每个内部回声时,它会给$data = [];
$collection = collect($monthly_usage_data)->each(function ($item, $key) {
$data['Total'][$key] = str_replace('$', '', collect($item)->where('Product', 'Product1')->pluck('Total'));
echo str_replace('$', '', collect($item)->where('Product', 'Product1')->pluck('Total'));
});
。
有人可以告诉我使用集合来获取["10"]["20"]["0"]
total
数组的正确方法
答案 0 :(得分:1)
请记住,函数有自己的范围。除非您导入,否则全局范围内的$ data与函数内的$ data不同。
您可以使用以下命令将变量导入匿名函数:
function ($item, $key) use ($data) {
}
答案 1 :(得分:0)
通常你可以使用它:
$totals = $collection->where('Product', 'Product1')->mapWithKeys(function ($item) {
return $item['Total'];
});
$totals->all();