Där sorterar den som jag vill ha det, men det läggs till en rad utan värden på slutet (den skriver bara ut tre , (dvs. komma)), vilket det inte gör om jag tar bort "natcasesort($files[name]);".
Någon som vet varför det blir så och hur man löser det?
Om du tittar här så kanske du får tipps på hur du skall lösa det: http://www.the-art-of-web.com/php/sortarray/ eller så kan man först sortera fillistan och sedan hämta information om resp. fil.
Vet inte riktigt vad du försöker uppnå med den raden? För det första borde du få en warning där php säger att "name" inte är en konstant och den kommer översätta det till strängen "name", alltså bli samma sak som att skriva natcasesort($files["name"]);
Och i så fall kommer ju $files["name"] vara tom. Namnen ligger ju i $files[0]["name"], $files[1]["name"] osv.
För att sortera mer komplexa saker än endimensionella arrayer är det nog usort() du får använda, typ såhär:
function mySort($a, $b)
{
return strnatcmp($a['name'], $b['name']);
}
usort($files, "mySort");
och då funkar sorteringen och jag får ingen extra rad, ocj det var ju egentligen den arrayn jag ville sortera :)
Det där går inte ihop i mitt huvud ett dugg :(
Du sorterar ju en array med bara 1 post? Har du kollat så filerna verkligen kommer i rätt ordning? I så fall får jag gå på kurs :P
Jo, jag tänkte lite fel där uppe, men det blir rätt ändå, troligtvis pga. att det är en inställning på servern som sorterar på namn som jag vill, har ett asp-konto hos samma ställe och där sorteras det på datum.
Men det kan ju vara vettigt att sortera själv ändå, i fall detta ändras i framtiden.
Jag ska kolla upp era länkar lite senare.
Då får man problemet med att filer med stora bokstäver kommer först, jag ändrade till:
natcasesort($files, "mySort");
Och då blir det rätt igen, men jag vet ju inte om det blir rätt pga. koden eller för att servern ändå sorterar som jag vill :p
natcasesort() tar bara ett argument, så det är inte koden som gör att det blir rätt då. Däremot kan du använda oskobs kod men med ett litet tillägg, om du använder strtolower() så slipper du problemet med att filer med versala tecken kommer före filer med gemener.
function mySort($a, $b)
{
return strnatcmp(strtolower($a['name']), strtolower($b['name']));
}
usort($files, "mySort");