This is fairly straightforward.
It's simply a case of looping over the original array and building the new one as you go along.
Once you've finished you can, if you want, replace the new array with the old one.
foreach ( $arr as $thisArray ) {
$aNewArray[ $thisArray['id']]['name'] = $thisArray['name'];
}
$arr = $aNewArray;
If you have an arbitrary number of elements in the array and you just want to wipe out the ID and keep the rest you can unset the ID as you go along and use the resulting array:
foreach ( $arr as $thisArray ) {
$id = $thisArray['id'];
unset( $thisArray['id'] );
$aNewArray[ $id ] = $thisArray;
}
$arr = $aNewArray;