将子数组的值传递给key

I have this array :

$arr = array(0 => array('id' => "AMO"), 1 => array('id' => "PAT"));

And I would like to obtain this one :

array(
'AMO' => array(),
'PAT' => array()
)

How could I do this, in the shortest way possible ?

I can do it with an array_map, followed by an array_flip and next an array_walk .. but too long.

array_column to extract the keys and array_fill_keys to create the new array:

$arr = array(0 => array('id' => "AMO"), 1 => array('id' => "PAT"));

$res = array_fill_keys(array_column($arr, 'id'), []);

simply loop over array and make its id to new array key

$arr = array(0 => array('id' => "AMO"), 1 => array('id' => "PAT"));

foreach($arr as $value)
{
    $new_arr[$value['id']] = array();
}
print_r($new_arr);

DEMO

I dont know what is the logic behind this, but you can try this one.

Here we are using array_combine, array_keys and array_fill

Try this code snippet here

$result=  array_combine(
            array_column($array,"id"),//getting column id
            array_fill(0, count($array), array())//mapping that keys with empty array
        );