Ragionandoci un attimo sembra molto semplice, basta solamente creare una riga per ogni (foreach) codice.
Ti viene in quel modo perché evidentemente crei una riga per ogni "substr" del codice. Invece dovresti prendere ogni codice a sé, ciclarlo e stampare la riga di conseguenza.
Ti posto un esempio di HTML che dovrebbe venir fuori:
Codice PHP:
<form>
<table>
<thead>
<tr>
<th></th>
<th>XS</th>
<th>S</th>
<th>M</th>
<th>L</th>
<th>XL</th>
<th>XXL</th>
<th>3XL</th>
<th>4XL</th>
<th>5XL</th>
</tr>
</thead>
<tbody>
<tr>
<td>Bianco</td>
<td></td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Rosso</td>
<td></td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Giallo</td>
<td></td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td>
<input type="text">
</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</form>
Prova un po' e facci sapere