Как удалить все переменные созданные внутри цикла по его окончанию?
Поддерживаю мысль Василий  - если имеется php 5.4+, можно даже так:$res = [];
array_walk(
    $arr,
    function($k, $v) use (&$res) {
         // создаем любые переменные в любом количестве
         // при необходимости пишем что-нибудь в $res
    }
);
И посмотрите еще на array_map.
Либо можно вынести сам цикл в отдельный метод.
Кстати, расскажите, зачем оно вам вообще понадобилось?
если внутри создается прям дофига переменных - создайте массив $tmp и храните переменные в нем, в конце сделайте $tmp = NULL; если так критична память. А если это "пирфикцианизм" и "аптемизация" то лучше не морочить себе голову и доверить все ГК.