---
title: "Sortering av mappar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/162161-sortering-av-mappar"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "slow"
published: "2007-07-03T11:13:01.000Z"
updated: "2007-07-03T18:52:25.000Z"
replies: 6
views: 389
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/162161-sortering-av-mappar"
---

# Sortering av mappar

## #1 — slow, 2007-07-03T11:13Z

Hej!

Går det att sortera mappar via det datum mappen skapades med PHP?

Kör en enkel scandir som sedan listar mappar i en speciell mapp. Dessa mappar skulle jag sedan vilja att senast skapad mapp hamnar överst. Går det? Har inte lyckats hitta någon lösning för detta...

MVH
Patrik

Permalänk: https://www.webforum.nu/p/162161

## #2 — SuPeR_ToBBe, 2007-07-03T14:22Z

Enklaste sättet bör vara att använda **filemtime** för att kolla senaste ändringen tillsammans med **usort** för att sortera din array efter denna.

```php
function my_sort($file1, $file2) 
{
    // Byt plats på 1 och -1 om du vill ändra sökordning,
    // nu kommer senast ändrade först
    return (filemtime($file1) < filemtime($file2)) ? 1 : -1; 
}

// ... din scandir-funktion som skapar en array (kallar den $array här)

// Sortera
usort($array, 'my_sort');
```

Permalänk: https://www.webforum.nu/p/1997875

## #3 — slow, 2007-07-03T16:17Z

Tack för ditt svar!

Vad ska jag skicka för info i $file1 och $file2?

Så här har jag gjort det hittils. Fungerar än så länge inte...

```php
echo "<form name=\"images\">\n";
echo "<select name=\"images\" onChange=MM_jumpMenu('parent',this,0)>\n";
echo "<option value=\"".$siteurl."/?id=".$_GET['id']."\">Hämta album...</option>\n";
function my_sort($file1, $file2)
{
    // Byt plats på 1 och -1 om du vill ändra sökordning,
    // nu kommer senast ändrade först
    return (filemtime($file1) < filemtime($file2)) ? 1 : -1;
} 
// >> PHP VERSION CHECK AND FUNCTIONS
$version = phpversion();
$pversion = $version{0};
if($pversion == "5") {
	$mappar = scandir($mapp);
} else {
	$smapp  = opendir($mapp);
	while (false !== ($filnamn = readdir($smapp))) {
		$mappar[] = $filnamn;
	}
	//sort($mappar);
	usort($mappar, 'my_sort');
}
```

Permalänk: https://www.webforum.nu/p/1997902

## #4 — drew, 2007-07-03T17:40Z

Filnamnen, med sökväg om dom inte är i current dir.

/D

Permalänk: https://www.webforum.nu/p/1997923

## #5 — slow, 2007-07-03T17:48Z

Men det är mappar, inte filer jag vill sortera...enbart mappar alltså...

Permalänk: https://www.webforum.nu/p/1997930

## #6 — sabbacus, 2007-07-03T18:02Z

filtrera ut katalogerna med is_dir()
<http://se.php.net/is_dir>

Permalänk: https://www.webforum.nu/p/1997936

## #7 — SuPeR_ToBBe, 2007-07-03T18:52Z

Jag borde varit tydligare med det: **my_sort** används bara av **usort**.

För att det ska funka även när **scandir** körs bör du lägga **usort** efter sista måsvingen (}) i din kod.

Permalänk: https://www.webforum.nu/p/1997950

---

Tråden på webben: https://www.webforum.nu/amne/php/162161-sortering-av-mappar
