将非关联数组列表转换为数组的关联数组

jbx*_*jbx 0 php arrays associative-array

我有一个数组列表(或对象,它们来自数据库通过该PDO fetchAll()函数,所以这两个选项对我来说都没问题).我希望将数组列表转换为数组的关联数组,每个数组的键是其列之一.

我显然可以做一个循环,但我想知道是否有一些已经做到这一点的PHP函数,可能是以更有效的方式.

所以为了说明它,让我说我有一个数组(非关联)与数组内:

[0] => {'name' : 'Joe', 'surname' : 'Bloggs', 'id' : '12345'}
[1] => {'name' : 'Sandy', 'surname' : 'Smith', 'id' : '54321'}
Run Code Online (Sandbox Code Playgroud)

我希望将其转换为:

['12345'] => {'name' : 'Joe', 'surname' : 'Bloggs', 'id' : '12345'}
['54321'] => {'name' : 'Sandy', 'surname' : 'Smith', 'id' : '54321'}
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 5

一个简单的循环可以做,但是发布答案太无聊了,所以你走了:

$array = array_combine(array_map(function (array $row) { return $row['id']; }, $array),
                       $array);
Run Code Online (Sandbox Code Playgroud)

如果你偏爱功能PHP:

$array = array_combine(F\pluck($array, 'id'), $array);
Run Code Online (Sandbox Code Playgroud)