Newsgroup: it.comp.www.php
Titolo: manipolare un array complesso

salve a tutti,
forse non si tratta realmente di un array complesso, ma per me lo e' :-)
dato un array del genere:
Array
(
  [rock] => Array
    (
      [brano1.mp3] => Array
        (
          [0] => 00:04:16
          [1] => 128
        )
      [brano2.mp3] => Array
        (
          [0] => 00:03:21
          [1] => 96
        )
    )
  [indie] => Array
    (
      [brano1.mp3] => Array
        (
          [0] => 00:02:07
          [1] => 256
        )
      [brano2.mp3] => Array
        (
          [0] => 00:11:21
          [1] => 128
        )
    )
)
ho la necessita', innanzitutto, di sommare tutti i minuti (gli indici [0])
di ogni mp3 e di contare il numero di brani presenti in ogni genere"
musicale".
dopo di che, devo stampare a video una <table> PER OGNI genere musicale,
contenente questi dati:
<table>
<--- inizio loop per numero brani del genere "rock" -->
<tr>
<td><? nome brano ?></td>
<td><? durata ?></td>
<td><? bitrate (indice [1]) ?></td>
</tr>
<--- fine loop per numero brani del genere "rock" -->
</table>
ma non riesco a capire: come scorrere all'interno dei (sotto-)sotto-array ?
:-/

"boycottbabies" <b...@epna.lan> ha scritto nel messaggio 
news:pan.2005.02.12...@epna.lan...

Prova una scrittura del del tipo:   A[i][j]    dove i denota le righe e j le 
colonne e il problema dovrebbe essere risolto.
Ovviamente A in questo caso rappresenterebbe il nome dell'array.
Cooper.
-- 
BlueWare Web Agency
   [http:] 
www.blueware.it
   [msn:] 
coo...@blueware.it
   [icq:] 146781935 

"boycottbabies" <b...@epna.lan> ha scritto nel messaggio 
news:pan.2005.02.12...@epna.lan...

<?
$musica = array(
"rock"=>array(
  "Track_01"=>array(
     "Durata"=>"0:05:04",
     "Bit"=>196
     ),
  "Track_02"=>array(
     "Durata"=>"0:06:05",
     "Bit"=>196
     )
  ),
"punk"=>array(
  "Track_01"=>array(
     "Durata"=>"0:02:24",
     "Bit"=>68
     ),
  "Track_02"=>array(
     "Durata"=>"0:02:54",
     "Bit"=>68
     ),
  "Track_03"=>array(
     "Durata"=>"0:02:01",
     "Bit"=>68
     ),
  "Track_04"=>array(
     "Durata"=>"0:02:01",
     "Bit"=>68
     )
  ),
"ska"=>array(
  "Track_01"=>array(
     "Durata"=>"0:07:21",
     "Bit"=>196
     ),
  "Track_02"=>array(
     "Durata"=>"0:09:18",
     "Bit"=>196
     )
  )
);
// tutti i generi
while (list($genere) = each($musica)) {
 echo"<br><b>$genere</b><br>
 ";
 // tutte le canzoni
 $tot=0;
 while (list($canzone) = each($musica[$genere])) {
   echo"$canzone(";
   echo"Durata: ".$musica[$genere][$canzone]['Durata'];
   echo"Bit: ".$musica[$genere][$canzone]['Bit'];
    echo")<br>";
  // scompongio la durata
  $durata=explode(":",  $musica[$genere][$canzone]['Durata']);
  // secondi totali
  $tot+=($durata[0]*3600)+($durata[1]*60)+$durata[2];
 }
 //ridivido in ore, minuti e secondi
 $tot_hh=floor($tot/3600);
 $tot_mm=floor(($tot-($tot_hh*3600))/60);
 $tot_ss=$tot-($tot_hh*3600)-($tot_mm*60);
 //metto gli zeri se in num è < di 10
 if($tot_hh<10){$tot_hh="0".$tot_hh;}
 if($tot_mm<10){$tot_mm="0".$tot_mm;}
 if($tot_ss<10){$tot_ss="0".$tot_ss;}
 echo "Totale: ".$tot_hh.":".$tot_mm.":".$tot_ss;
 echo"<br> ";
}
?>
x i cicli guardati bene come funziona
   while (list($chiave, $valore) = each($array)) {}
ciauz
^p0t^