Gå til innhold

[LØST] Sortere en array


Anbefalte innlegg

Hei! Kan noen hjelpe meg å sortere en array? Har kikka på php.net uten å skjønne hvordan jeg skal sette opp dette..

 

 

$filen = "yeti1/liste.dat";
$f = fopen($filen, "r");

while ( $line = fgets($f, 1000) ) {
$data = explode("|", $line);
echo "Navn: $data[0] poeng: $data[1]";

}

 

 

 

filen som det hentes data fra inneholder data på denne måten (liste.dat):

 

navn1|1234

navn2|872.8

navn3|8992.1

 

 

jeg vil sortere slik at den personen med høyest poengsum står øverst..

Endret av andrlan
Lenke til kommentar
Videoannonse
Annonse

sort()

Har du sett på den?

Da må du vel kanskje endre litt på den løkken din.

 

$score["'".$data[0]."'"] = $data[1];

Kan du bruke tror jeg, bare legg den til i løkken din så bruker du sort() på $score.

 

Tror det skal funke.

Endret av Hjelpphp
Lenke til kommentar
sort()

Har du sett på den?

Da må du vel kanskje endre litt på den løkken din.

 

$score["'".$data[0]."'"] = $data[1];

Kan du bruke tror jeg, bare legg den til i løkken din så bruker du sort() på $score.

 

Tror det skal funke.

 

 

Forsøkte her nå slik, men det funker ikke:

 

<?php
echo "<table width='100' height='100%' align='center'>";


$filen = "yeti1/liste.dat";
$f = fopen($filen, "r");

while ( $line = fgets($f, 1000) ) {
$data = explode("|", $line);
$score["'".$data[0]."'"] = $data[1];

sort($score);

echo "<tr><td align='left'><font size='2'>$score[0]:</font></td><td align='right'><font size='2'>$score[1]</font></td></tr>";

}

echo"</table>";

?>

 

 

resultatet ble:

 

1162.3 :

1162.3 : 269.6

 

 

dette ligger i fila liste.dat:

 

navn|1162.3

navn|269.6

Endret av andrlan
Lenke til kommentar

$filen = "yeti1/liste.da";
$f = fopen($filen, "r");

while ( $line = fgets($f, 1000) ) {
$data = explode("|", $line);
$a = $data[1];
$score[$a] = $data[0];

}
asort($score, SORT_NUMERIC );
echo "<pre>";
print_r($score);
echo "</pre>";

 

Tror det vil fungere ganske bra..

EDIT : En linje som ikke hørte hjemme der.

 

EDIT2 :

Legger med en løkke til å skrive ut resultatet.

foreach ($score as $k => $v) 
{
echo $v . " : " . $k. "<br>";
}

Kan bruke den istede for print_r.

Endret av Hjelpphp
Lenke til kommentar

Sikker på at du bruker den siste jeg la ut? jeg får nemmelig det til å funke.

Mekke en test fil og jeg får ut.

navb : 125

navnw : 124

navn : 123

 

$filen = "yeti1/liste.dat";
$f = fopen($filen, "r");
while ( $line = fgets($f, 1000) ) {
$data = explode("|", $line);
$a = $data[1];
$score[$a] = $data[0];

}
asort($score, SORT_NUMERIC );
foreach ($score as $k => $v) 
{
echo $v . " : " . $k. "<br>";
}

Endret av Hjelpphp
Lenke til kommentar

$filen = "./liste.txt";

$f = fopen($filen, "r");

 

while ( $line = fgets($f, 1000) ) {

$data = explode("|", $line);

$a = $data[0];

$score[$a] = $data[1];

 

}

arsort($score, SORT_NUMERIC);

foreach ($score as $k => $v)

{

echo $k . " : " . $v. "<br>";

}

 

Sånn, beklager rot.

Endret av Hjelpphp
Lenke til kommentar
$filen = "./liste.txt";

$f = fopen($filen, "r");

 

while ( $line = fgets($f, 1000) ) {

$data = explode("|", $line);

$a = $data[0];

$score[$a] = $data[1];

 

}

arsort($score, SORT_NUMERIC);

foreach ($score as $k => $v)

{

echo $k . " : " . $v. "<br>";

}

 

Sånn, beklager rot.

 

 

Kjempemessig!! Nå fungrerer det som smurt. Takker og bukker for hjelpen!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...