Gå til innhold

sortere arrays i txt-fil


Anbefalte innlegg

Videoannonse
Annonse


$TmpArr = file("tekst.fil");               // Legger filen inn i variablen $TmpArr

asort($TmpArr);                           // Sorterer variabelen $TmpArr

$TextFile=fopen("tekst.fil", "w");   //Åpner "text.fil" for skriving

for ($Cnt=0; $Cnt<count($TmpArr); $Cnt+=1)  //Går igjennom alle verdiene i $TmpArr

fwrite($TextFile, $TmpArr[$Cnt], SizeOf($TmpArr[$Cnt]); //Skriver til filen

 

Hvorfor fungerer ikke dette?

Lenke til kommentar

aner ikke. eneste tanken jeg kan tenke er at scriptet kolliderer med et annet på samme side. Men kan ikke finne grunnlag for det heller. Forsøkte hele to ganger, andre gangen klarte tekst.fil å bli til "AdfgErTtrRR" eller no. Men har skjønt det er asort det er snakk om, tusen takk :woot:

Lenke til kommentar

Nå har jeg hatt tid til å forske litt, og jeg bommet på to statements.


<?php

$TmpArr = file("tekst.fil");

sort($TmpArr);

$TextFile=fopen("tekst.fil", "w") or die("Couldn't open file");

for ($Cnt=0; $Cnt<=count($TmpArr); $Cnt+=1)

 fwrite ($TextFile, $TmpArr[$Cnt], StrLen($TmpArr[$Cnt]));

?>

De to jeg bommet på var asort som skulle være sort og SizeOf som skulle være StrLen.

 

Håper det hjelper. :)

 

Edit:

foreach kan være en bedre løsning


<?php 



$tmpArr = file("tekst.fil"); 

sort($tmpArr);

$file=fopen("tekst.fil", "w") or die("Couldn't open file"); 

foreach ($tmpArr as $line) {

   fwrite($file, $line); 

}

?>

Lenke til kommentar
  • 2 år senere...
ser jeg har vært tvetydig i spørsmålsstillingen. det jeg ønsket var at resultatet ble alfabetisk, ikke nødvendigvis innholdet i selve fila.

 

natcasesort ($ting);

reset ($ting);

918202[/snapback]

Hm...

 

Hvis jeg ber den om å sortere disse tallene:

1

32

11

3

 

... får jeg dette resultatet:

1

11

3

32

 

... men jeg ønsker egentlig dette resultatet;:

1

3

11

32

 

Hva skal jeg gjøre for å få det resultatet som jeg ønsker?

Endret av ntec
Lenke til kommentar

funksjon(argument1, argument2, argument3....);

 

$array = array(1, 3, 11, 32); // Her er tallene

 

$sortert = sort($array, SORT_NUMERIC); // Sorterer, SORT NUMERIC som andre argument.

 

 

Det var forresten litt av en bump :)

Endret av Mikka
Lenke til kommentar
funksjon(argument1, argument2, argument3....);

 

$array = array(1, 3, 11, 32); // Her er tallene

 

$sortert = sort($array, SORT_NUMERIC); // Sorterer, SORT NUMERIC som andre argument.

 

 

Det var forresten litt av en bump :)

5157679[/snapback]

ah takk!:)

 

Men siden jeg skal bruke denne funksjonen til topscore, hadde det vært kjekt hvis de største tallene hadde kommet øverst! Hvordan gjør jeg det da? =)

Lenke til kommentar

Det må jeg virkelig så netc, ingen tvil om at du har søkt litt i alle fall - og det er bra!

 

For å sortere motsatt må du bruke reverse sort = rsort()

 

Eventuelt dersom det ikke skulle være snakk om en ren sortering så har du muligheten til å reversere en array også, med array_reverse()

Lenke til kommentar
Det må jeg virkelig så netc, ingen tvil om at du har søkt litt i alle fall - og det er bra!

 

For å sortere motsatt må du bruke reverse sort = rsort()

 

Eventuelt dersom det ikke skulle være snakk om en ren sortering så har du muligheten til å reversere en array også, med array_reverse()

5158722[/snapback]

Tusen takk! Nå fikk jeg det til:D

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...