从 Laravel 中的集合中获取键值
Posted
技术标签:
【中文标题】从 Laravel 中的集合中获取键值【英文标题】:Get key values from a collection in Laravel 【发布时间】:2022-01-20 07:39:43 【问题描述】:我有这个收藏
1 => #27
+"id": 1
+"name": "Zel"
+"age": "43"
2 => #28
+"id": 2
+"name": "Kol"
+"age": "56"
3 => #29
+"id": 3
+"name": "Mil"
+"age": "32"
我想返回一个包含键值作为字符串的数组,如下所示:
[
'id',
'name',
'age',
]
有人可以帮我吗?
【问题讨论】:
在所有 Laravel 集合中都有一个keys
方法可以满足你的需求。
【参考方案1】:
Laravel 集合有一个 keys() 方法,你可以像这样简单地使用它:
$keys = $collection->keys();
$get = $keys->all();
Laravel Documentation里都写得很清楚
编辑
查看您的编辑后,我首先考虑的是,如果您的收藏是一致的,您可以获得第一个,然后从那里获取密钥:
$keys = $collection->first();
$get = $keys->keys()->all();
或者简单地说$collection->first()->keys()->all();
编辑
这是我如何重现您的问题的方法:
$collection = collect([
[
'id' => 1,
'name' => 'Zel',
'age' => 43
],
[
'id' => 2,
'name' => 'Kol',
'age' => 56
],
[
'id' => 3,
'name' => 'Mil',
'age' => 32
],
]);
$keys = collect($collection->first())->keys()->all();
这是我得到的结果:
array:3 [▼
0 => "id"
1 => "name"
2 => "age"
]
如果它仍然根据您的最后评论返回集合或对象,您可以尝试以下任何一种:
$keys = $keys->toArray();
$keys = collect($keys)->toArray();
【讨论】:
我正在调用未定义的方法 stdClass::keys() 试试这个collect($collection->first())->keys();
作品 - 谢谢,最后我只是将它转换为数组【参考方案2】:
使用array_keys
:
$keys = array_keys($collection->first());
【讨论】:
这不起作用,因为它给出的键是 1,2, 3 对不起,我更新了我的答案。 @Elisa以上是关于从 Laravel 中的集合中获取键值的主要内容,如果未能解决你的问题,请参考以下文章
使用 Datatables 在 Laravel 中处理大量行的最佳方法是啥?