Anda dapat melakukan ini tanpa menggunakan fungsi PHP dengan memanfaatkan fungsi group_concat MySQL yang melakukan persis seperti yang Anda cari:
SELECT name, group_concat(`data`) FROM table GROUP BY name;
Akan mengembalikan satu kolom dengan "John" dan kolom kedua dengan "data1, data2". Anda kemudian dapat menggunakan fungsi burst() PHP pada kolom kedua untuk mendapatkan larik yang berisi "data1" dan "data2".