Лучше делать эти ограничения до форичей, что бы было меньше проблем.
$data = range(0, 100);
$first15Entities = array_slice($data, 0, 15);
foreach ($first15Entities as $entity) {
echo $entity;
}
Почему? Да что бы упростить логику. Можно конечно проверять текущий индекс и в for и в foreach и стопать выполнение, но это не удобно банально и если у вас в будущем поменяется количество элементов которые нужно обрабатывать или еще что - то начнется веселье. А так вы не завязываете на это вот "правило" код который отвечает только за обход массива и вывод его значений.