-
Classifica con array!!!
Salve a tutti...
Io avrei questo problema:
vorrei mettere in una classifica dei valori presi da un foglio .txt (per esempio classifica.txt) grazie ad array, ma cercando su google non ho trovato nulla...
Sapreste come fare?
io per ora utilizzo questo codice, ma per poter fare una classifica con tutti gli iscritti diventerebbe troppo lungo!!!
Codice PHP:
<?php
include("esporta/esp_classifica.php");
$films = Array (
"titolo" => array ("$username1","$username2","$username3","$username4","$username5",
"$username6","$username7","$username8","$username9","$username10",
"$username11","$username12","$username13","$username14","$username15",
"$username16","$username17","$username18","$username19","$username20");
rsort($films[genere]);
$pt= $films["genere"][0];
$pt1= $films["genere"][1];
$pt2= $films["genere"][2];
$pt3= $films["genere"][3];
$pt4= $films["genere"][4];
$pt5= $films["genere"][5];
$pt6= $films["genere"][6];
$pt7= $films["genere"][7];
$pt8= $films["genere"][8];
$pt9= $films["genere"][9];
$pt10= $films["genere"][10];
$pt11= $films["genere"][11];
$pt12= $films["genere"][12];
$pt13= $films["genere"][13];
$pt14= $films["genere"][14];
$pt15= $films["genere"][15];
$pt16= $films["genere"][16];
$pt17= $films["genere"][17];
$pt18= $films["genere"][18];
$pt19= $films["genere"][19];
$pt20= $films["genere"][20];
?>
<html>
<div align=left>
<table border=1 cellpadding=2 cellspacing=0><caption>CLASSIFICA</caption>
<th bgcolor=#D3D3D3>#</th>
<th bgcolor=#D3D3D3>Nome</th>
<th bgcolor=#D3D3D3>Punti</th>
<tr>
<td width=15>01</td>
<td width=210>
<?php if ($pt == $punti1) { echo "$username1"; }
elseif ($pt == $punti2) { echo "$username2"; }
elseif ($pt == $punti3) { echo "$username3"; }
elseif ($pt == $punti4) { echo "$username4"; }
elseif ($pt == $punti5) { echo "$username5"; }
elseif ($pt == $punti6) { echo "$username6"; }
elseif ($pt == $punti7) { echo "$username7"; }
elseif ($pt == $punti8) { echo "$username8"; }
elseif ($pt == $punti9) { echo "$username9"; }
elseif ($pt == $punti10) { echo "$username10"; }
elseif ($pt == $punti11) { echo "$username11"; }
elseif ($pt == $punti12) { echo "$username12"; }
elseif ($pt == $punti13) { echo "$username13"; }
elseif ($pt == $punti14) { echo "$username14"; }
elseif ($pt == $punti15) { echo "$username15"; }
elseif ($pt == $punti16) { echo "$username16"; }
elseif ($pt == $punti17) { echo "$username17"; }
elseif ($pt == $punti18) { echo "$username18"; }
elseif ($pt == $punti19) { echo "$username19"; }
elseif ($pt == $punti20) { echo "$username20"; }
?>
</td>
<td width=140>
<?php
echo "$pt";?></td> </tr>
<tr>
<td>02</td>
<td>
<?php
if ($pt1 == $punti1) { echo "$username1"; }
elseif ($pt1 == $punti2) { echo "$username2"; }
elseif... ecc...
<tr>
</table>
</div>
</html>
So che il codice è sbagliatissimo e che esiste sicuramente un modo più corto e semplice, ma non conoscendo bene gli array, sono costretto a fare questo...
Potreste aiutarmi a scrivere il codice giusto?:?:
-
Direi che il punto di partenza dovrebbe essere la funzione file(), che legge un file (di testo) in un array, un elemento per riga.
Se vuoi invece avere delle "sezioni" nel file, puoi dare un'occhiata a parse_ini_file().
-
per leggere il file .txt a seconda di come è formattato devi utilizzare le seguenti funzioni:
- file()
- file_get_contents()
- fopen()/fread()
- explode()
- le grazie funzioni di parsing (preg_match, oppure quelle dedicate agli xml, o altre cose ancora)
costruisci un array che:
- se monodimensionale puoi ordinare con sort() uasort() uksort() usort() a seconda dei risultati che vuoi
- pluridimensionale occorre array_multisort()
-
grazie, proverò in questo modo