从dirs计算图像并在顶部显示较少

时间:2014-01-12 03:36:29

标签: php

我使用此代码显示不同目录中的总文件,一切都很好但例如cats = 50然后dog = 30而fish = 10。我怎样才能做出一些东西,这样我就可以把鱼放在上面,然后是狗,最后是猫......

function scan_dir($path){
    $ite=new RecursiveDirectoryIterator($path);
    $nbfiles=0;
    foreach (new RecursiveIteratorIterator($ite) as $filename=>$cur) {       
        $nbfiles++;
    }
        if($nbfiles > 2)    $nbfiles = $nbfiles - 2;

    return $nbfiles;
}

$dogs = scan_dir('/home/dogs/');
$cats = scan_dir('/home/cats/');
$fish = scan_dir('/home/fish/');


<table border="1">
<tr><td><b>Animal</b></></></td><td><b>Total Files</b></></></td></tr>
<tr><td>Dogs</td><td><?=$dogs?></td></tr>
<tr><td>Cats</td><td><?=$cats?></td></tr>
<tr><td>Fish</td><td><?=$fish?></td></tr>
</table>

3 个答案:

答案 0 :(得分:3)

又快又脏:

$dogs = scan_dir('/home/dogs/');
$cats = scan_dir('/home/cats/');
$fish = scan_dir('/home/fish/');

$arr = array("Dogs" => $dogs, "Cats" => $cats, "Fish" => $fish);
asort($arr);

echo '<table border="1">';
echo "<tr><td><b>Animal</b></></></td><td><b>Total Files</b></></></td></tr>";

foreach ($arr as $key=>$value) {
  echo "<tr><td>$key</td><td>$value</td></tr>";
}

echo "</table>";

工作example

答案 1 :(得分:1)

$array = array($dogs => 'dogs', $cats => 'cats', $fish => 'fish');
ksort($array); //sorts array the way you want

这应该有用。

答案 2 :(得分:0)

<?php 

function scan_dir($path){
    $count = 0;
    $it = new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS);
    foreach (new RecursiveIteratorIterator($it) as $dummy) {
        ++$count;
    }
    return $count;
}

$animals = array(
    'Dogs' => '/home/dogs/',
    'Cats' => '/home/cats/',
    'Fish' => '/home/fish/',
);

foreach ($animals as $animal => $path) {
    $animals[$animal] = scan_dir($path);
}
arsort($animals);

?>
<table border="1">
<tr><td><b>Animal</b></td><td><b>Total Files</b></td></tr>
<?php foreach ($animals as $animal => $count): ?>
<tr><td><?=$animal?></td><td><?=$count?></td></tr>
<?php endforeach; ?>
</table>