Я бы на вашем месте не считал этого в PHP, а сразу же нужные данные получил из БД.
На сколько понимаю, у вас следующий запрос делает выборку из БД:
SELECT * FROM table_with_products
Сразу возникает вопрос где вы храните массив размеров? Если в БД есть таблица с размерами и вы перед этим запросом ее выбирали из базы в таком же цикле, то правильней было бы написать следующий запрос:
SELECT t1.id,t1. name, t1.type, t1.price, t2.size, t1.price* t2.size as sum
FROM table_with_products as t1
INNER JOIN table_with_sizes as t2
ON t1.id = t2.id_from_table_with_products
WHERE t1.price* t2.size > 0
После чего делаете простейшую выборку из БД:
while($row = mysql_fetch_assoc($sql)){
$pdf->Row(
array(
'id' => $row['id'],
'name' => $row['name'],
'size' => $size,
'type' => $row['type'],
'price' => $row['price'],
'sum' => $sum
)
);
}
Если в базе нет таблицы с размерами, то я вам настоятельно рекомендую ее создать.