从 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();

Laravel Documentation

里面都写的很清楚了

编辑

查看您的编辑后,我的第一个考虑是,如果您的 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();