我有下一個陣列無臨時變量格式化陣列
[
['id' => 30, 'count' => 3],
['id' => 45, 'count' => 7]
]
我需要它是
[
30 => ['count' => 3],
45 => ['count' => 7]
]
我做什麼
$formatted = [];
foreach ($services as $service) {
$formatted[$service['id']] = [
'count' => $service['count']
];
}
我想是一個比較沒有臨時的$格式變量的優雅解決方案。謝謝!
更新。非常感謝@rtrigoso! 隨着laravel收藏,我的代碼看起來未來
$services->reduce(function ($carry, $item) {
$carry[$item['id']] = ['count' => $item['count']];
return $carry;
});
但爲什麼呢?如果您不使用第三個變量並直接更新主數組...您可能會覆蓋索引。例如,如果您有一個ID爲30,但也有一個在索引30的項目,它會覆蓋它,當你設置ID。 –
只是覺得應該有一個更優雅和正確的方式來做到這一點。就像$ formatted = array_magic($ array,'id') – cleverketchup