Ибо финкция while перепереборку ключей в массиве делает. А for как раз устанавливает лимиты на вывод результата?!