我有此數組:通價值鍵入
$arr = array(0 => array('id' => "AMO"), 1 => array('id' => "PAT"));
而且我想獲得這一個:
array(
'AMO' => array(),
'PAT' => array()
)
我怎麼能做到這一點,在最短的路?
我可以做一個array_map,然後是一個array_flip和下一個array_walk ..但太長。
我有此數組:通價值鍵入
$arr = array(0 => array('id' => "AMO"), 1 => array('id' => "PAT"));
而且我想獲得這一個:
array(
'AMO' => array(),
'PAT' => array()
)
我怎麼能做到這一點,在最短的路?
我可以做一個array_map,然後是一個array_flip和下一個array_walk ..但太長。
array_column
提取鍵和array_fill_keys
來創建新的數組:
$arr = array(0 => array('id' => "AMO"), 1 => array('id' => "PAT"));
$res = array_fill_keys(array_column($arr, 'id'), []);
簡單地遍歷數組並其ID到新陣列關鍵
$arr = array(0 => array('id' => "AMO"), 1 => array('id' => "PAT"));
foreach($arr as $value)
{
$new_arr[$value['id']] = array();
}
print_r($new_arr);
我不知道這背後的邏輯是什麼,但你可以試試這個。
這裏我們使用array_combine
,array_keys
和array_fill
$result= array_combine(
array_column($array,"id"),//getting column id
array_fill(0, count($array), array())//mapping that keys with empty array
);
我喜歡這個解決方案+1 – Akintunde007
@Akintunde謝謝..朋友.. :) –
是的!我不知道array_column()函數。魔法。謝謝 ! – Jerry