我有此数组:通价值键入
$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