Newsgroup: it.comp.www.php
Titolo: Ordinare le righe di un file di testo

Ciao a tutti, ho un problema.
Dato il seguenti file di testo:
0 ferraif40 ^11^733 J.Grainger
2 octane ^7Octane
27 bitrei ^2bi^7tr^1ei
55 sypher85 ^2P^7L^1Z^4-^3Sypher
0 bossforce ^2P^7L^1Z^4-^7Bossforce
2 ruz@@ ^1ruz^2@@^0_^4C^1Z^7E
0 unitsas ^2P^7L^1Z^4-^3Unitsas
28 fiore ^2P^7L^1Z^4-^7Black
0 o_francês fisher fury
0 il nonno ^2R^74^1F ^7Il Nonno
0 wilko868 ^0[^J^2ÓÏ^0] ^4W^7ilko
dovrei ordinare per il numero iniziale di ogni riga.
L'ho messo in un array e ho fatto il sort ma lui mi ordina solo il
primissimo numero, quindi 0 poi uno e cosi via senza fare distinzione
tra 2 e 22 o 32 e 31 e cosi via.
Chi mi sa dare una dritta ?
Ovviamente in php.
Grazie, Michele


Prova ad usare il natsort()
http://it2.php.net/manual/en/function.natsort.php
Ciao!

Grazie, ma non mi va purtroppo.
Io opero cosi, magari sbaglio !
$file2 = "prova2.txt"; // è il file che ti ho fatto vedere sopra
$var4 = file($file2);
$e = count($var4);
$sorted = array($e);
for ($e=0; $e<=$i; $e++)
	{
	$sorted[$e]	= $var4[$e];
	}
natsort($sorted);
Dove sbaglio ?


cos'è $i ??
io molto molto all grezza farei:
<?php
$arr = file("prova2.txt");
natsort($arr);
print_r($arr);
?>
e occhio che l'array viene ordinato, ma non vengono ordinati gli
indici! :) Con il print_r() capisci cosa intendo.
Ciao!

Come non detto ho trovato l'errore.
Ora però che ho l'array ordinato (inverso), come faccio a scriverlo in
ordne in un file di testo ?


Dai, ormai ci sei quasi! :)
Se non riesci posta il codice e vediamo di capire l'errore.


Eccolo !
<?php
$file2 = "prova2.txt";
$file3 = "prova3.txt";
$var4 = file($file2);
$e = count($var4);
$sorted = array($e);
for ($g=0; $g<=$e; $g++)
	{
	$sorted[$g]	= $var4[$g];
	}
natsort($sorted);
print_r ($sorted);
$var5 = @fopen ($file3, "a+");
for ($g=0; $g<=$e; $g++)
	{
	@fwrite($var5, $sorted[$g]);
	}
@fclose ($var5);
?>

Che poi in realtà a me servirebbero in sort dal numero + grande al +
piccolo.

Sto facendo progressi !
Con le Key sono arrivato ad avere questo array già ordinato:
Array ( [0] => Array ( [a] => 69 [b] => mario dallacurva [c] => mario
dallacurva ) [1] => Array ( [a] => 55 [b] => sypher85 [c] =>
sypher85 ) [2] => Array ( [a] => 53 [b] => malcomax [c] => malcomax )
[3] => Array ( [a] => 38 [b] => michele0676 [c] => michele0676 ) [4]
=> Array ( [a] => 28 [b] => fiore [c] => fiore ) [5] => Array ( [a] =>
27 [b] => bitrei [c] => bitrei ) [6] => Array ( [a] => 20 [b] =>
trojans24 [c] => trojans24 ) [7] => Array ( [a] => 10 [b] => albyrider
[c] => albyrider ) [8] => Array ( [a] => 7 [b] => kawa12r [c] =>
kawa12r ) [9] => Array ( [a] => 7 [b] => -main- [c] => -main- ) [10]
=> Array ( [a] => 4 [b] => delta_s4 [c] => delta_s4 ) [11] => Array
( [a] => 2 [b] => ruz@@ [c] => ruz@@ ) [12] => Array ( [a] => 2 [b] =>
octane [c] => octane ) [13] => Array ( [a] => 0 [b] => zerocool02 [c]
=> zerocool02 ) [14] => Array ( [a] => 0 [b] => wilko868 [c] =>
wilko868 ) [15] => Array ( [a] => 0 [b] => usmaan_mughal [c] =>
usmaan_mughal ) [16] => Array ( [a] => 0 [b] => unitsas [c] =>
unitsas ) [17] => Array ( [a] => 0 [b] => scholl88 [c] => scholl88 )
[18] => Array ( [a] => 0 [b] => sabastracci [c] => sabastracci ) [19]
=> Array ( [a] => 0 [b] => raffaele [c] => raffaele ) [20] => Array
( [a] => 0 [b] => o_francÃªs [c] => o_francÃªs ) [21] => Array ( [a]
=> 0 [b] => mc06762 [c] => mc06762 ) [22] => Array ( [a] => 0 [b] =>
lucaderby93 [c] => lucaderby93 ) [23] => Array ( [a] => 0 [b] => kass-
ssu [c] => kass-ssu ) [24] => Array ( [a] => 0 [b] => juppe20 [c] =>
juppe20 ) [25] => Array ( [a] => 0 [b] => ilijadj [c] => ilijadj )
[26] => Array ( [a] => 0 [b] => il nonno [c] => il nonno ) [27] =>
Array ( [a] => 0 [b] => gianni1965 [c] => gianni1965 ) [28] => Array
( [a] => 0 [b] => ferraif40 [c] => ferraif40 ) [29] => Array ( [a] =>
0 [b] => ercules [c] => ercules ) [30] => Array ( [a] => 0 [b] =>
enzino9 [c] => enzino9 ) [31] => Array ( [a] => 0 [b] => damon77 [c]
=> damon77 ) [32] => Array ( [a] => 0 [b] => bossforce [c] =>
bossforce ) [33] => Array ( [a] => 0 [b] => alchy [c] => alchy ) )
Adesso come faccio a scriverlo in un file ?
Questo array lo visualizzo cosi:
print_r ($string);
Perché se scrivo:
echo $string[3]
non mi fa vedere niente ?

 Adesso come faccio a scriverlo in un file ?
se ho capito bene basta che cicli $string e ogni suo
elemento lo implodi in una stringa che scriverai in un file.


Ce l'ho fatta !!! Grazie 1000 !!! Ora ho un altro problema e apro una
discussione a parte.