Du kan gøre dette uden brug af en PHP-funktion ved at drage fordel af MySQL's group_concat-funktion, som gør præcis det, du leder efter:
SELECT name, group_concat(`data`) FROM table GROUP BY name;
Returnerer en kolonne med "John" og en anden kolonne med "data1,data2". Du kan derefter bruge PHP's explode() funktion i den anden kolonne for at få et array, der indeholder "data1" og "data2".