Se il problema dipende dal browser dubito che esso possa dipendere dal PHP ma più verosimilmente esso dovrebbe essere causato dall'html generato dallo script. A tale proposito ti consiglio di dare un'occhiata a questo pezzo di codice:

Codice PHP:
...
echo 
'<tr>'
foreach(
$ars as $va) { 
$asc=explode('|',$va);
$c1=$asc[0];
$c2=$asc[1];
$c3=$asc[2]; 
$c4=$asc[3]; 
$c5=$asc[4]; 
$c6=$asc[5]; 
echo 
'<th colspan="2" class="head_tb">'.$c1.'</th>'
//echo '<th colspan="1" class="head_tb">'.$c2.'</th>';
// echo '<th colspan="1" class="head_tb">'.$c3.'</th>'; 
echo '<th colspan="2" class="head_tb">'.$c5.'</th>'
echo 
'<th colspan="1" class="head_tb">'.$c6.'</th>'
echo 
'</tr>';
echo 
'<tr>';
echo 
'<th colspan="4" class="head_tb">'.$c4.'</th>'
echo 
'<th colspan="1" class="head_tb"> <form action="" method="POST" name="frmMain" onSubmit="return chkSubmit();"> <select class="button" name="T'.$nu_sc.'"> <option value="S">SI</option><option value="N">NO</option></select> <script language="JavaScript">function chkSubmit(){if(isNaN(document.frmMain.quo.value)) {alert("Please... inserire solo numeri. Es. 2.4");return false;}}</script>
</th>'

echo 
'</tr>'
$sa $_POST['T'.$nu_sc]; 
$ars_t[$nu_sc] = $c1.'|'.$c2.'|'.$c3.'|'.$c4.'|'.$c5.'|'.$c6.'|'.$sa
$nu_sc++; 

... 
Prima del for apri il tag <TR>, ma alla fine, dopo il for esso non viene chiuso. Ciò comporta un'errata costruzione dell'HTML. Se il for viene eseguito una sola volta il codice generato dovrebbe essere corretto, ma negli altri casi (0 o più volte) ci sarà un tag <TR> di troppo.
Prova a visualizzare da browser (visualizza sorgente pagina) l'HTML generato e probabilmente vi troverai qualche tag aperto e non chiuso.