Вторая ошибка в этих двух строчках

Код:
my_arr = str.split("\n");
...
my_arr = my_arr[ig].split("&");
В первом проходе по циклу вы перебиваете значение my_arr. Надо сделать так:

Код:
arrayFirst = str.split("\n");
...
my_arr = arrayFirst[ig].split("&");