Prueba este ejemplo, a ver si es lo que esta buscando, se podría optimizar para hacerlo todo con el mismo array, pero no he podido probarlo en marcha:
Código PHP:
<?php
//array de coasubID
$ctas = array();
//array con el resto de valores
$data = array();
$resultado = mysql_query("SELECT coasubID,period,amount FROM coasub WHERE coasubID='$coasubID'");
while ($fila = mysql_fetch_array($resultado)) {
$cta = $fila['coasubID'];
$period = $fila['period'];
$amount = $fila['amount'];
//comprueba ya existe el coasubID en el array
//si no esta ya incluido, lo añade
if (!in_array($cta, $ctas)) array_push($ctas, $cta);
//guarda los otros dos valores (el priodo como indice y el importe como valor)
$data[$cta][$period] = $amount;
}
//-------------------------------------
//valor con el que se deberian de haber creado los arrays
// $ctas = array("7050000", "6070000");
// $data["7050000"]["01"] = 150000;
// $data["7050000"]["02"] = 250000;
// $data["6070000"]["01"] = 300000;
// $data["6070000"]["02"] = 400000;
echo "<table>
<tr>
<td>Cantidad</td>
<td>Periodo 01</td>
<td>Periodo 02</td>
</tr>";
$cont = 0;
foreach ($data as $line) {
echo "<tr>
<td>".$ctas[$cont]."</td>
<td>".$line["01"]."</td>
<td>".$line["02"]."</td>
</tr>";
$cont++;
}
echo "</table>";
?>
Si además van a poder existir más de dos periodos, tendras que tener ese campo en cuenta también.