如何将 laravel 集合转换为方括号集合
How to convert lavavel collection to square bracket collection
我有 laravel livewire 集合如下。
[
{
"date":"2021.09.01-0:00",
"open":110.177,
"close":110.175,
"low":110.172,
"high":110.18
},
{
"date":"2021.09.01-0:01",
"open":110.175,
"close":110.171,
"low":110.169,
"high":110.175
},
{
"date":"2021.09.01-0:02",
"open":110.171,
"close":110.173,
"low":110.17,
"high":110.176
}
]
我想将它们转换成没有键名的方括号集合形式,如下所示。
$data = [
['2021.09.01-0:00',110.177,110.175,110.172,110.18],
['2021.09.01-0:01',110.175,110.171,110.169,110.175],
['2021.09.01-0:02',110.171,110.173,110.17,110.176]
];
如有任何建议或指导,我们将不胜感激,谢谢。
可以使用集合map
方法:
The map method iterates through the collection and passes each value to the given callback. The callback is free to modify the item and return it
https://laravel.com/docs/8.x/collections#method-map
$expectData = $collection->map(fn($item) => [$item-> date, $item->open,...])
我不确定原始数据是什么,但您可以 map
覆盖 collection 并提取值;如果 Eloquent 型号:
$data->map(fn ($v) => array_values($v->toArray()))
将取决于您如何获得原始 Collection 在这种情况下它会如何结束。
如果您需要限制返回的属性及其顺序,您可以在模型上使用 only
:
fn ($v) => array_values($v->only(['date', ...]))
我有 laravel livewire 集合如下。
[
{
"date":"2021.09.01-0:00",
"open":110.177,
"close":110.175,
"low":110.172,
"high":110.18
},
{
"date":"2021.09.01-0:01",
"open":110.175,
"close":110.171,
"low":110.169,
"high":110.175
},
{
"date":"2021.09.01-0:02",
"open":110.171,
"close":110.173,
"low":110.17,
"high":110.176
}
]
我想将它们转换成没有键名的方括号集合形式,如下所示。
$data = [
['2021.09.01-0:00',110.177,110.175,110.172,110.18],
['2021.09.01-0:01',110.175,110.171,110.169,110.175],
['2021.09.01-0:02',110.171,110.173,110.17,110.176]
];
如有任何建议或指导,我们将不胜感激,谢谢。
可以使用集合map
方法:
The map method iterates through the collection and passes each value to the given callback. The callback is free to modify the item and return it
https://laravel.com/docs/8.x/collections#method-map
$expectData = $collection->map(fn($item) => [$item-> date, $item->open,...])
我不确定原始数据是什么,但您可以 map
覆盖 collection 并提取值;如果 Eloquent 型号:
$data->map(fn ($v) => array_values($v->toArray()))
将取决于您如何获得原始 Collection 在这种情况下它会如何结束。
如果您需要限制返回的属性及其顺序,您可以在模型上使用 only
:
fn ($v) => array_values($v->only(['date', ...]))