Não fique preso cometendo este erro, que já vi muitas vezes:
for($i = 0; $i < count($my_array); $i++){ ... }
Para os não iniciados, $ i <count ($ my_array) e $ i ++ são executados toda vez que o loop é executado. Para aliviar essa operação de computação intensiva, basta definir uma variável:
$count = count($my_array);
for($i = 0; $i < $count; $i++){ ... }
* dica: a mesma ideia se aplica a um loop while e do.
while($i < $count){ $i++; }
do{ $i++; }while($i < $count);