Al fin logre insertar varios registros a la vez, despues de varias horas revisando scripts y estudiando arrays, encontre la solucion, aqui les dejo el ejemplo para alguien que lo nesecite:
Código PHP:
<?php
//si no envio el formulario muestro los campos
if (!isset($_POST['id']))
{
?>
<form name="form1" method="post" action="prueba.php">
<input type="hidden" value="1" name="id" />
<?php
$i=0;
for($i=1;$i<=5;$i++){?>
<input type="text" name="articulos[<?php echo $i; ?>]" value=""/>
<input type="text" name="serie[<?php echo $i; ?>]" value="" />
<input type="checkbox" name="envio[<?php echo $i; ?>]" value="<?php echo $campo[cod_articulo]; ?>" /><br>
<?php }?>
<input type="submit" value="enviar" />
<input type="text" value="<?php echo $i-1; //dato que ems irve para saber cuantas filas tendra el array ?>" name="cantidad" />
</form>
<?php
}
else
//si envio el formulario por post recupero os valores
{
$cantidad=$_REQUEST['cantidad']; //cantidad de filas que tiene mi array variable que viene del formulario
$datos =array(codigo=>$_POST['envio'],articulo=>$_POST['articulos'],serie=>$_POST['serie']);//creo el array $datos
//recorro el array con for deberia ser con foreach pero no he probado si alguien sabe por favor agregar
for($i=0;$i<=$cantidad;$i++)
{
if($datos['articulo'][$i]!=""){// si una fila no tiene datos, no recupero
// listo los datos del array
echo $datos['codigo'][$i];
echo $datos['articulo'][$i];
echo $datos['serie'][$i];
echo "<br>";
/*estos datos se pueden agregara una funcion para insertar en una bd, ejem. en mi caso:
$productos->insertar($datos['codigo'][$i],$datos['articulo'][$i],$datos['serie'][$i]);
*/
}
}
} ?>
espero le sirva a lguien que tuvo mi problema. gracias amigos del foro.