Prueba esto a ver si no me he liado :
Código PHP:
<?
$a['Valoracion']=5;
$a['Comentario']['Fecha']="09/01/2005";
$a['Comentario']['Titulo']="Me parece genial...";
$a['Comentario']['Descripcion']="bla, bla, bla, bla,...";
$b['Valoracion']=5;
$b['Comentario'][0]['Fecha']="09/01/2005";
$b['Comentario'][0]['Titulo']="Me parece genial...";
$b['Comentario'][0]['Descripcion']="bla, bla, bla, bla,...";
$b['Valoracion']=5;
$b['Comentario'][1]['Fecha']="09/01/2005";
$b['Comentario'][1]['Titulo']="Me parece genial...";
$b['Comentario'][1]['Descripcion']="bla, bla, bla, bla,...";
$b['Valoracion']=5;
$b['Comentario'][2]['Fecha']="09/01/2005";
$b['Comentario'][2]['Titulo']="Me parece genial...";
$b['Comentario'][2]['Descripcion']="bla, bla, bla, bla,...";
$b['Valoracion']=5;
$b['Comentario'][3]['Fecha']="09/01/2005";
$b['Comentario'][3]['Titulo']="Me parece genial...";
$b['Comentario'][3]['Descripcion']="bla, bla, bla, bla,...";
function arreglo($arr)
{
$indices_validos=array('Fecha', 'Titulo', 'Descripcion');
foreach ($arr as $key=>$value)
{
if (is_array($value))
{
arreglo ($value);
}
elseif (in_array($key,$indices_validos))
{
$nuevo[$key]=$value;
$contador++;
if ($contador==3)
{ print"<p><b>".$nuevo['Titulo']=ucfirst($nuevo['Titulo'])."</b><br>Fecha:".$nuevo['Fecha']."<br>".$nuevo['Descripcion']."</p><hr color=\"#003366\" size=\"1\">";
$contador=0;
}
}
}
}
print "<br /><br /><u>Array tipo 1</u><br /><br/>";
arreglo($a);
print "<br /><br /><u>Array tipo 2</u><br /><br/>";
arreglo($b);
?>
He definido unos ejemplos de array para ver si funcionaba...
A ver si hay suerte y te sirve. Lo mismo alguién hay alguna forma mejor de hacerlo menos liosa :S
Lo que falla en tu prueba es que el foreach va iterando sobre el array y con eso que has puesto no te serviría, porque tu no quieres mostrar los datos a la 1 vuelta ni a la segundo, sino a la tercera. La forma de solucionarlo es poner un contador que a la tercera se resetee además de mostrar los datos, más o menos...
Salu2 ;)