This is too specialized for functions like array_map
without shooting yourself in the foot. But you can easily do it with a foreach
loop:
$finalData = array();
foreach ($data as $person) {
$finalData['firstname'][] = $person['firstname'];
$finalData['lastname'][] = $person['lastname'];
}