Avatar billede 32grader Nybegynder
12. september 2006 - 16:10 Der er 14 kommentarer og
1 løsning

Sorter billeder

Hej. Jeg fatter ikke en skid. Så er det sagt.

Jeg har et script der viser billederne jeg har i mappen images. Men hvordan dælen får jeg dem sorteret i alfabetisk rækkefølge?

Billederne hedder 001.jpg 002.jpg osv. men når billederne bliver uploadet hedder de DSC40o0059940.jpg (eller noget i den dur). De billeder der hedder noget med bogstaver til at starte med skal gerne vises først.. Kan det lade sig gøre?

Hjælp mig!
Avatar billede radion Nybegynder
12. september 2006 - 16:17 #1
du kan jo evt, i stedet for at outputte billederne med det samme, lægge navnene i et array, og sortere det?

til at sørge for at bogstaverne kom først, ville jeg lave 2 arrays, et med navne der starter med et bogstav og et med navne der starter med et tal, så kan du sortere begge, og outputte det med bogstaverne først
Avatar billede 32grader Nybegynder
12. september 2006 - 16:20 #2
Øhh.. Som sagt fatter jeg ikke en skid :)

Lidt hjælp..?
Avatar billede coderdk Praktikant
12. september 2006 - 16:24 #3
Lad os se dit script.

Kommer de ikke i rigtig rækkefølge hvis du skriver:

$files = glob( "din_mappe/*.jpg" );
foreach ( $files as $file )
{
  echo basename( $file ) . "<br>";
}

?
Avatar billede 32grader Nybegynder
12. september 2006 - 16:25 #4
<?
function getFiles() {
    $files = array();
    $handle = opendir("images");
    while($file = readdir($handle)) {
        if($file != '.' && $file != '..') {
            array_push($files, $file);
        }
    }
    asort($files);
    return $files;
}

$array = getFiles();
foreach ($array AS $var) {
echo "<a href=images/".$var." target=_blank><img src=images/".$var." width=300 height=225 border=0></a><br><br>";
}

function printFiles($mappenavn) {
    $handle = opendir($mappenavn);
    $tal = 0;
    while($file = readdir($handle) !== false) {
        if($file != '.' && $file != '..') {
            $tal++;
            print("fil".$tal."=".$file."&");
        }
    }
}
printFiles("images");
?>
Avatar billede coderdk Praktikant
12. september 2006 - 16:32 #5
Prøv at skifte asort() ud med natsort()...
Avatar billede 32grader Nybegynder
12. september 2006 - 16:38 #6
Ja, nu bliver filerne der hedder noget med tal sorteret.. men hvad med dem med bogstaver?

Men tak indtil videre
Avatar billede zynzz Praktikant
12. september 2006 - 16:50 #7
sort($files); giver:

    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png

natsort($files); giver:

    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png

Så jeg ville bare bruge sort()....
Avatar billede 32grader Nybegynder
12. september 2006 - 16:53 #8
Det giver da det samme. Burde det ikke det eller hvad?
Avatar billede 32grader Nybegynder
12. september 2006 - 16:55 #9
Altså: Lige nu har jeg en masse billeder der hedder fra 01 - 46 uploadet. Jeg har også en fil der hedder top uploadet. Når det bliver vist skal top gerne komme før 01
Avatar billede coderdk Praktikant
12. september 2006 - 17:09 #10
zynzz, natsort giver da et mere naturligt resultat...

32grader, Så er du nødt til at adskille dem der starter med tal, og flytte dem i toppen - Eller vende arrayet så de er i omvendt rækkefølge (så dem med bogstaver er i starten)...
Avatar billede 32grader Nybegynder
12. september 2006 - 17:11 #11
hvordan vender jeg arrayet?
Avatar billede coderdk Praktikant
12. september 2006 - 17:16 #12
Avatar billede zynzz Praktikant
13. september 2006 - 16:41 #13
hmm, det kommer an på hvordan 32grader vil have det :)
Avatar billede 32grader Nybegynder
21. september 2006 - 17:10 #14
I må satme undskylde! Havde fuldstændig glemt mit spørgsmål. Coderdk svar fungere, så det må være ham der skal smide et svar
Avatar billede coderdk Praktikant
21. september 2006 - 17:42 #15
Ok :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester