Т.е. в моём случае массив должен выглядеть примерно так:
array(
'sum' => array(
array(
'rowspan' => 2,
'value' => '10000 - 15000',
),
array(
'rowspan' => 0,
'value' => '20000 - 27000',
),
),
'instalment' => array(
array(
'rowspan' => 3,
'value' => '10%',
),
),
'period' => array(
array(
'rowspan' => 0,
'value' => '5 лет',
),
array(
'rowspan' => 0,
'value' => '7 лет',
),
array(
'rowspan' => 0,
'value' => '17 лет',
),
),
'procent' => array(
array(
'rowspan' => 0,
'value' => '3%',
),
array(
'rowspan' => 2,
'value' => '5%',
),
),
'currency' => array(
array(
'rowspan' => 3,
'value' => 'RUB',
),
),
);
Далее просто в цикле прогоняю каждый элемент ('sum', 'period' и т.д.) и если rowspan === 0, то рисую <td>значение value</td>, в противном случае <td rowspan="значение rowspan">значение value</td>. Спасибо, что натолкнули на мысль! :)