Alles für die Homepage... Scripte, Templates, Workshops und Support
Startseite | Forum | Webtemplates | PHP Scripte | CGI Scripte | CGI-Perl Workshop | Selfhtml & PHP | Linkdatenbank | Downloadbereich

Startseite Artikel / Artikel lesen

Kategorie: PHP 02.04.2008 17:33 / (Artikel mit 2 Seiten)

Daten einen selbstdefinierten Index zuweisen

Oft kann es nützlich sein Daten beim speichern einen eigens dafür optimierten Sortierindex zuzuweisen. Einsatzzwecke können sein: Zusammenfassung von Wortlisten (z.B. die Worte die mit A,a,Ä,ä beginnen unter Buchstabe A abzulegen, oder das verschieben von Dateien mit bestimmten Endungen in festgelegte Zielverzeichnisse.

1. Beispiel, Begriffen eine Index zuordnen

Der unterhalb dargestellte Code verarbeitet ein Array von Daten und weist, je nach Anfangsbuchstabe/Zeichen, diesen einen Index zu. Das in der function notierte $indexarray enthält in dem Assiozativem Array als Key Werte die Testzeichen, als Value den Indexwert.

Mittels der substr Funktion wird der das erste Zeichen jedes übergebenen Begriffes ermittelt, danach wird in der while Schleife das Array solange abgearbeitet bis der passende Indexwert gefunden wurde.

Für Eingaben die nicht zugeordnet werden können wurde am Schluss ein Defaultindex definiert.

CODE:
$datei_index = $gefunden == 1 ? $datei_index : '*';

Dieser greift nur wenn nichts im Indexarray gefunden wurde und weist das Zeichen * zu.


CODE:
<?php
// Beispieldaten die sortiert werden sollen
$eingabe = array('Überraschung', 'Telefon', '9190 8754', '_TXT_');

// Schleife zur Bearbeitung aller Daten
foreach ($eingabe as $values) {

echo "Wert <b>$values</b> wird Index <b>" . indexer($values) . "</b> zugeordnet<br>\n";
}

// Die Indexfunktion
function indexer($wert) {

$indexarray = array(
'1,2,3,4,5,6,7,8,9,0'     => '0-9',
'A,a,Ä,ä'                 => 'A',
'B,b'                     => 'B',
'C,c'                     => 'C',
'D,d'                     => 'D',
'E,e'                     => 'E',
'F,f'                     => 'F',
'G,g'                     => 'G',
'H,h'                     => 'H',
'I,i'                     => 'I',
'J,j'                     => 'J',
'K,k'                     => 'K',
'L,l'                     => 'L',
'M,m'                     => 'M',
'N,n'                     => 'N',
'O,o,Ö,ö'                 => 'O',
'P,p'                     => 'P',
'Q,q'                     => 'Q',
'R,r'                     => 'R',
'S,s'                     => 'S',
'T,t'                     => 'T',
'U,u,Ü,ü'                 => 'U',
'V,v'                     => 'V',
'W,w'                     => 'W',
'X,x'                     => 'X',
'Y,y'                     => 'Y',
'Z,z'                     => 'Z',
);

$erstes_zeichen = substr($wert, 0, 1);

$gefunden = 0;
while(list($key, $val) = each ($indexarray)){
$keydata = explode(',', $key);
    if(in_array($erstes_zeichen, $keydata)) {
    $datei_index = $val;
    $gefunden = 1;
    break;
    }
}

$datei_index = $gefunden == 1 ? $datei_index : '*';

return $datei_index;

}

?>


Scriptausgabe

Wert Überraschung wird Index U zugeordnet
Wert Telefon wird Index T zugeordnet
Wert 9190 8754 wird Index 0-9 zugeordnet
Wert _TXT_ wird Index * zugeordnet

Die nächste Seite beschreibt in einem Praxisbeispiel das zuweisen von Zielverzeichnissen für Dateitypen nach Endung.

Drucken | Artikel wurde 2786 mal aufgerufen

 
Impressum - Kontakt - Datenschutzerklärung