编辑:我刚才发现我的情况有点复杂。我因此编辑了这个问题。
我有一个这种格式的数组:
[
[
"key" => "key1",
"field1" => "a1",
"field2" => "b1"
],
[
"key" => "key2",
"field1" => "a2",
"field2" => "b2"
]
]
我想定义一个函数将其转换为:
[
"key1" => [
"field1" => "a1",
"field2" => "b1"
],
"key2" => [
"field1" => "a2",
"field2" => "b2"
]
]
另一个扭转过程的功能。
我设法写了第一个函数
function ($array, $key) {
return array_reduce($array, function ($carry, $item) use ($key) {
$new = array_diff_key($item, [$key=>0]);
$carry[$item[$key]] = $new;
return $carry;
}, []);
}
但现在我遇到了相反的问题。
PS:我正在努力避免循环
有什么想法吗?
答案 0 :(得分:2)
PHP> = 5.5有一个名为array_column()的内置函数可以为您执行此操作:
$array = array_column($array, 'value', 'key');