Я, конечно, ни фига не понял в скрипте (точнее, зачем это делать ТАК), однако один "непорядочек" заметил.
В инициализации переменных у тебя идет так:
$bla_x=$sizeof($data)-_x , где _x - числа от 1 до 20.
Дык вот странная вещь:
$bla18=sizeof($data)-18; - вроде все нормально
$bla20=sizeof($data)-19; - внимание
^^ ^^
$bla21=sizeof($data)-20; - пошло-поехало
Если не ошибаюсь, у тебя как раз с этого места неувязочка.
З.Ы. И вообще если уж надо инициализировать столько переменных, то существует конструкция $$name - она создает переменную с именем, хранящимся в переменной $name.
Т.е. в твоем случае инициализацию горааааздо проще было сделать так:
for ($i=1;$i<=50;$i++)
{ $bla_x="bla$i";
$$bla_x=sizeof($data)-$i;
}