Salve a tutti, mi sto approcciando da pochi giorni al php e sto seguendo la guida di base che c'è sul sito di html.it! Stavo diciamo "giocando" con i cicli for e dato un array(che ora vi mostro) volevo trovare la persona con l'età maggiore, quella con l'età minore e la media.
L'età maggiore non c'è problema, per la media ci sono riuscito, ma seguendo lo stesso schema logico non mi riesce di trovare quella minore.
inoltre mi da degli errori in visualizzazione che non mi spiego!
il codice è questo :
(ho usato a per le iterazioni del ciclo, b per determinare l'età più grande, e per quella più piccola, la c per determinare la grandezza dell'array e quindi stabilire quando il ciclo deve fermarsi, la d per la somma delle età per fare la media.
Codice PHP:
< ?php
$a=0;
$b=0;
$persone=array(array("nome"=>"mattia","età"=>"90"),
array("nome"=>"paolo","età"=>"100"),
array("nome"=>"giovanni","età"=>"70"),
array("nome"=>"mario","età"=>"50"));
$c=count($persone);
$d=0;
$e=200;
for($a=0; $a<=$c; $a=$a+1){
if($persone[$a]["età"]>=$b){
$b=$persone[$a]["età"];
}
$d=$d+$persone[$a]["età"];
}
for($a=0; $a<=$c; $a=$a+1){
if($persone[$a]["età"]<=$e){
$e=$persone[$a]["età"];
}
}
echo"la persona più grande ha $b anni";
$media=$d/$c;
echo"la media delle età è di $media anni";
echo"la persona piu giovane ha $e anni";
?>
la visualizzazione nella pagina web è questa :
codice:
Notice: Undefined offset: 4 in c:\program files (x86)\easyphp1-8\www\prova.php on line 93
Notice: Undefined offset: 4 in c:\program files (x86)\easyphp1-8\www\prova.php on line 96
Notice: Undefined offset: 4 in c:\program files (x86)\easyphp1-8\www\prova.php on line 99
Notice: Undefined offset: 4 in c:\program files (x86)\easyphp1-8\www\prova.php on line 100
la persona più grande ha 100 annila media delle età è di 77.5 annila persona piu giovane ha anni
la linea dove sta scritto $a=0; è la numero 83.
Grazie a tutti per l'aiuto e scusate se è una domanda scema.
Spiego brevemente il ragionamento del codice: con un ciclo for analizzo singolarmente ogni elemento dell'array, per l'età maggiore la prima volta se l'età sarà maggiore di una variabile che ho dichiarato con valore 0 allora l'età da visualizzare prenderà quel valore, ogni volta che trova un età più grande di quella che ha gia come valore la sostituisce al valore stesso. alla fine avrò la più grande.
per la minore ho dichiarato una variabile con un età molto alta e ogni volta che la variabile trova un età inferiore a quella che ha gia come valore, la sostituisce al valore stesso. alla fine dovrei avere la più piccola ma non è cosi. grazie della pazienza.