Совет выше правильный. while надо заменить на foreach. While работает пока выражение внутри круглых скобок будет возвращать true (с учетом приведения типов), а непустой массив всегда возвращает true. Судя по комментарию ты думаешь что while так же как foreach будет перебирать массив по элементам. Это ошибка.