我有:
foreach($filters as $key => $filter) {
$filters[$filter['field']] = [
'operator' => $filter['operator'],
'value' => $filter['value']
];
unset($filters[$key]);
}它工作得很好,但我想知道是否有一个简短的版本或内置函数可以做同样的事情?
发布于 2016-12-14 00:21:08
您可以将array_combine与array_column一起使用
$result = array_combine(
array_column($filters, 'field'),
$filters
);这将把'field'元素留在一个数组中。如果你想删除它,你可以使用array_map
$result = array_combine(
array_column($filters, 'field'),
array_map(function ($filter) {
return [
'operator' => $filter['operator'],
'value' => $filter['value']
];
}, $filters)
);为简单起见,我直接访问了键,但在生产中,您应该始终检查此键是否存在于数组中。
https://stackoverflow.com/questions/41119095
复制相似问题