$nameString = 'Crosby Bing, Gretzky Wayne, Clemente Roberto';
$names = array_map('trim', explode(',', $nameString));
foreach ($names as &$name) {
$name = explode(' ', $name, 2);
}
Это немного отличается от того, что вы хотите. Это массив массивов, где внутренние массивы имеют 2 значения, первое из которых первое, а второе - второе (и любое другое) имя. Это не должно быть трудно преобразовать его в вашу структуру, если даже требуется.
echo $name[0][0]; // Crosby
echo $name[0][1]; // Bing
Кевин Пено предлагает что-то подобное в комментариях ниже
$nameString = 'Crosby Bing, Gretzky Wayne, Clemente Roberto';
foreach (explode(',',$nameString) as &$name) {
$name = explode(' ', trim($name), 2);
}
Тем не менее, они оба являются семантическими эквивалентами, и, пока в строке нет имен 1M (которые также потребляют 1 байт памяти средней длины строки), я не думаю, что кто-либо может понять разницу в производительности. .