Puoi fare anche cosi. Esempio fatto in 20 minuti. Ci sono altri modi per arrivare allo stesso risultato.

File test505a.php

Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<
html>
<
head>
<
title>Untitled</title>
<
script language="JavaScript" type="text/javascript">
<!--
var 
line 0;
function 
add() {
 
line++;
 
posizione "<td><input type='text' name='pos["+line+"]' value='"+line+"'/></td>";
 
desc      "<td><input type='text' name='des["+line+"]'/></td>"
 
qta       "<td><input type='text' name='qta["+line+"]'/></td>";  
 
prezzo    "<td><input type='text' name='prz["+line+"]'/></td>";   
 
mioTR     "<tr>"+posizione+desc+qta+prezzo+"</tr>";
 
alert(mioTR);
 
document.getElementById('miaTabella').innerHTML document.getElementById('miaTabella').innerHTML mioTR;
}
//-->
</script>
</head>
<body>
<form action="test505b.php" method="post">
 <table summary="" id='miaTabella'>
  <tr>
   <td>Posizione</td><td>Descrizione</td><td>Quantità</td><td>Prezzo</td>
  </tr>
 </table>
 <input type="submit" value="Invia"/>
</form>
<hr/>
<input type="button" value="Aggiungere riga" onclick="add()" />
</body>
</html> 
File test505b.php
Codice PHP:

<?php
 
foreach($_POST as $key => $subArray) {
   foreach(
$subArray as $index => $value) {
     print 
"$key [$index] => $value<br/>";
  }
 }
?>