[PHP] Links op alfabetische volgorde

Pagina: 1
Acties:
  • 253 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met een links pagina voor een simpele CMS. De gebruiker kan links toevoegen en deze moeten op alfabetische volgorde worden weergegeven. Het overzicht zou als volgt moeten worden?
-----------------------------
A
www.appel.nl
www.annanas.nl

R
www.rodeo.nl

T
www.tweakers.net
----------------------------------
Wanneer de link bestaat zou het het kopje krijgen van de eerste letter. Als er geen link is wordt de desbetreffende letter niet weergegeven.

Weet iemand hoe ik dit voor elkaar krijg. Ik krijg doormiddel van substr. wel de eerst letter uit de link, maar hoe krijg ik het voor elkaar dat onder A meerdere links komen?

Acties:
  • 0 Henk 'm!

  • MichelVH
  • Registratie: Oktober 2001
  • Laatst online: 16-09 20:54
Ik doe dit soort dingen altijd door de laatst afgedrukte header bij te houden, en als de huidige header afwijkt van de laatst afgedrukte, druk je de huidige header af. In code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$startChar = '';
$lastStartChar = '';

foreach($linkArray as $link) {
   $startChar = substr($link, 0, 1);

    if($startChar != $lastStartChar) {
        echo '<h1>' . $startChar . '</h1>';
        $lastStartChar = $startChar;
    }

    echo '<a href="' . $link . '">' . $link . '</a>';
}

Don't be afraid of the dark, be afraid of what it hides


Acties:
  • 0 Henk 'm!

Verwijderd

Let wel even op de case. Ik weet niet of bij de input van de links al een strtolower uitgevoerd word, anders word het:
PHP:
1
$startChar = strtolower(substr($link, 0, 1));


edit:
Daarnaast moet je natuurlijk zorgen dat je de prefix (www + http://) niet meeneemt bij het sorteren, maar dat is wel een leuk stukje uitzoekwerk :)

[ Voor 32% gewijzigd door Verwijderd op 18-10-2005 16:33 ]