Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kansioiden nimien lajitteluongelma

EterAnal [02.05.2010 03:02:22]

#

Tervehdys!
Ongelma on seuraavanalainen. Minulla on kuvakansioita joiden nimet ovat:

2010
2009
2008
2007
Sekalaisia
Vanhat

Nyt kun luen kuvakansioiden nimet taulukkoon ja tulostan taulukon ulos tulee:

2007
2008
2009
2010
Sekalaisia
Vanhat

Sen sijaan pitäisi saada tulostettua uusin vuosi ensin kuten ensimmäisessä kohdassa.

Miten tekisin tuon fiksusti PHP-kielellä? Tällä hetkellä tulostan taulukon kahteen kertaan jättäen ensimmäisellä kerralla pois tekstimuotoiset nimet ja tulostan ne vasta toisella kerralla. Tuntuu, että voisi tehdä helpomminkin.

Kiitoksia!

Grez [02.05.2010 08:08:33]

#

Äkkiseltään ajatellen kyllä jo käyttämäsi tapa kuulostaa aika optimaaliselta.

Metabolix [02.05.2010 11:00:46]

#

Tuskin siihen paljon parempaakaan tapaa on. Jos kuitenkin haluat välttämättä käyttää jotain erikoisempaa, voit järjestää taulukon usort-funktiolla, jolle voi antaa itse tehdyn vertailufunktion, tai voit erotella taulukosta erilaiset arvot ja järjestää ne erikseen. Tässä on yksi toteutustapa:

<?php
$nimet = array(1, 2, 3, "a", "b", "C", "A");
$luvut = preg_grep('#^[0-9]+$#', $nimet);
$tekstit = array_diff($nimet, $luvut);
natcasesort($tekstit);
rsort($luvut);
$nimet = array_merge($luvut, $tekstit);

var_dump($nimet); # debug...

EterAnal [02.05.2010 17:56:02]

#

Kiitoksia! Jotain tuontapaista ajattelinkin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta