Newsgroup: it.comp.www.php
Titolo: array

In una cartella ci sono diversi file:
pippo
pluto
clarabella
(sě, non hanno estensione)
in ognuno di questi file ci sono dei numeri. Per esempio, il file pippo 
contiene soltanto il n.20
vorrei ordinare un array che mi visualizzi
[pippo] --> 20
[clarabella]--->18
ecc. ecc.
invece....
Qui sotto c'č prima il codice e poi il risultato :((((
<?php
echo'<table>';
############################# INIZIO FUNZIONE 
##################################
function dir_list($directory = FALSE)
{
$dirs= array();
$files = array();
global $files;
if ($handle = opendir($directory))
{
while ($file = readdir($handle))
{
if (is_dir("./{$directory}/{$file}"))
{
if ($file != "." & $file != "..") $dirs[] = $file;
}
else
{
if (($file != "." & $file != "..") && ($file!="statistiche.php"))
{
$fd=fopen($file,"r");
$contatore = fgets($fd,4096);
fclose($fd);
$files[$file]=$contatore;
}
}
}
}
closedir($handle);
reset($dirs);
sort($dirs);
reset($dirs);
reset($files);
sort($files);
reset($files);
echo "</table>";
if (!$d) $d = "0";
if (!$f) $f = "0";
}
############################# FINE FUNZIONE 
##################################
dir_list("/rootdomain/it/s/a/
salvatorepaci.it/public_html/cartella1/cartella2/
");
echo"<pre>";
arsort($files);
print_r($files);
echo"</pre>";
?>
------------------risultato----------------
Array
(
    [58] => 20
    [57] => 16
    [56] => 16
    [55] => 14
    [53] => 11
    [54] => 11
    [50] => 10
    [51] => 10
    [52] => 10
    [49] => 9
    [48] => 7
    [47] => 6
    [46] => 5
    [42] => 4
    [41] => 4
    [43] => 4
    [45] => 4
    [44] => 4
    [36] => 3
    [34] => 3
    [35] => 3
    [37] => 3
    [38] => 3
    [40] => 3
    [39] => 3
    [31] => 2
    [32] => 2
    [30] => 2
    [33] => 2
    [29] => 2
    [26] => 2
    [27] => 2
    [25] => 2
    [28] => 2
    [8] => 1
    [7] => 1
    [9] => 1
    [10] => 1
    [6] => 1
    [11] => 1
    [3] => 1
    [1] => 1
    [2] => 1
    [12] => 1
    [4] => 1
    [5] => 1
    [15] => 1
    [21] => 1
    [20] => 1
    [22] => 1
    [23] => 1
    [24] => 1
    [19] => 1
    [18] => 1
    [14] => 1
    [0] => 1
    [16] => 1
    [17] => 1
    [13] => 1
)

 [pippo] --> 20 [clarabella]--->18
Guarda se il codice seguente puň esserti utile (da testare e da
completare). 
<?php
function getFiles($dir)
{
  $files = array();
  if (file_exists($dir)) {
    $dh = opendir($dir);
    if (is_resource($dh)) {
      while ($file = readdir($dh)) {
        if ($file != '.' && $file != '..') {
          $fp = fopen($dir.'/'.$file, 'r');
          if (is_resource($fp)) {
            $files[$file] = fread($fp, 1024);
          }
          fclose($fp);
        }
      }
      closedir($dh);
    } 
  }
  return $files;
}
// Assumo che i file pippo, clarabella, eccetera
// si trovino nella sottocartella prova.
$data = getFiles('prova');
arsort($data);
reset($data);
echo '<pre>'.print_r($data, true).'</pre>';
?> 
-- 
Federico

 sort($files);
^^^^^^^^^^^^^^^^^
[snip]
http://it.php.net/sort
Note: This function assigns new keys for the elements in array.
It will remove any existing keys you may have assigned,
rather than just reordering the keys.
p.s.
non usare global, fai restituire a dir_list un array

 completare).
------------
Grazie Federico, è la seconda volta in una settimana che mi risolvi un 
problema. :)))
(dopo il problema con lo slashes dei cookies)
Grazie anche ad HK3