假设我有一个元素数组,它们本身就是数组,如下所示:
$array = [
['foo' => 'ABC', 'bar' => 'DEF'],
['foo' => 'ABB', 'bar' => 'DDD'],
['foo' => 'BAC', 'bar' => 'EFF'],
];
要将
foo
字段的值设置为数组的键,我可以这样做:
foreach ($array as $element) {
$new_array[$element['foo']] = $element;
}
$array = $new_array;
代码自然很琐碎,但我一直想知道是否有内置的可以为我做同样的事情。
这是适合您箱子的内衬,
$temp = array_combine(array_column($array, 'foo'), $array);
工作演示。
array_combine — 使用一个数组作为键,另一个数组作为值来创建一个数组
array_column — 返回输入数组中单个列的值
您也可以使用 array_reduce
来完成$new_array = array_reduce($array, function($carry, $item) {
$carry[$item['foo']] = $item;
return $carry;
}, []);