假设我有一个元素数组,它们本身就是数组,就像这样:
$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;
代码自然是微不足道的,但是我一直想知道是否有内置的代码可以为我做同样的事情。
答案 0 :(得分:5)
答案 1 :(得分:3)
这里是您的案件的衬里,
$temp = array_combine(array_column($array, 'foo'), $array);
工作demo。
array_combine —通过使用一个数组作为键并使用另一个数组作为其值来创建数组
array_column —从输入数组的单个列中返回值
答案 2 :(得分:0)
您也可以使用array_reduce
$new_array = array_reduce($array, function($carry, $item) {
$carry[$item['foo']] = $item;
return $carry;
}, []);