Hmm.. I'm going make some assumptions here;
a) in your array, all text contained within <....> are email addresses.
b) by separate, you want to simply 'get that information' as the term separate can mean splitting something, which is different.
something along these lines perhaps?
$arr = array('test <first@test.com>', 'test1 <test1@test.com>', 'test2 <test2@test.com>');
foreach($arr as $val){
if(preg_match('#<([^>]+)>#', $val, $match)){
echo $match[1] . "<br />\n";
}
}
output:
first@test.com
test1@test.com
test2@test.com