从 Laravel 中的 collection 获取键值
Get key values from a collection in Laravel
我有这个collection
1 => {#27
+"id": 1
+"name": "Zel"
+"age": "43"
}
2 => {#28
+"id": 2
+"name": "Kol"
+"age": "56"
}
3 => {#29
+"id": 3
+"name": "Mil"
+"age": "32"
}
我想 return 一个数组,其键值作为字符串,如下所示:
[
'id',
'name',
'age',
]
有人可以帮我吗?
使用array_keys
:
$keys = array_keys($collection->first());
Laravel collection 有一个 keys() 方法,您可以像这样简单地使用它:
$keys = $collection->keys();
$get = $keys->all();
里面都写的很清楚了
编辑
查看您的编辑后,我的第一个考虑是,如果您的 collection 是一致的,您可以获得第一个,然后从那里获得密钥:
$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"
]
如果根据您最后的评论,它仍然是 returns collection 或 object,您可以尝试以下任一方法:
$keys = $keys->toArray();
$keys = collect($keys)->toArray();
我有这个collection
1 => {#27
+"id": 1
+"name": "Zel"
+"age": "43"
}
2 => {#28
+"id": 2
+"name": "Kol"
+"age": "56"
}
3 => {#29
+"id": 3
+"name": "Mil"
+"age": "32"
}
我想 return 一个数组,其键值作为字符串,如下所示:
[
'id',
'name',
'age',
]
有人可以帮我吗?
使用array_keys
:
$keys = array_keys($collection->first());
Laravel collection 有一个 keys() 方法,您可以像这样简单地使用它:
$keys = $collection->keys();
$get = $keys->all();
里面都写的很清楚了
编辑
查看您的编辑后,我的第一个考虑是,如果您的 collection 是一致的,您可以获得第一个,然后从那里获得密钥:
$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"
]
如果根据您最后的评论,它仍然是 returns collection 或 object,您可以尝试以下任一方法:
$keys = $keys->toArray();
$keys = collect($keys)->toArray();