phpbar.de logo

Mailinglisten-Archive

[php] Mustererkennung

[php] Mustererkennung

Sebastian Nohn sebastian at nohn.net
Die Okt 21 19:09:20 CEST 2003


Sebastian Nohn wrote:

> zur Lösung eines Problems muss ich eine Mustererkennung in PHP
> implementieren. Alle Werte des folgenden Arrays sind dabei als gleich
> zu betrachten:

Hier die Lösung für die, die's interessiert:

$newcells = array();

foreach ($testcells as $ci => $rt) {
   // Wie werden die Hoppingsysteme auf Buchstaben gemapped?
   $hopsys_map = array();
   // Da das ganze Rackweise konfiguriert wird, kann's passieren, das die
   // Reihenfolge der Racks 1, 2, 4, 5 ist.
   // Die RTs sind aber dennoch selbstverstänlich 0,1,2,3
   $orderrt = 0;
   // Es sind maximal 10 Hoppingsysteme zu mappen
   $letters = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j");
   // Schauen wir uns die einzelnen RTs an
   foreach ($rt as $channel) {
     // Erstmal die Timeslots voneinander separieeren
     $timeslots = explode(" ", $channel);
     // Durch das spearieren bekommen wir einen "leeren" Timeslot zuviel,
     // das ist uns aber egal, weil wir einfach stur zählen:
     for ($i = 0; $i <=7; $i++) {
       // Hoppingsystem, mit dem der aktuelle TS konfiguriert ist
       $hopsys = $timeslots[$i];
       // Ist denn überhaupt ein Hopping konfiguriert?
       if(is_numeric($timeslots[$i])) {
         // Ist dieses Hopsys noch nicht aufgetreten?
         if (!isset($hopsys_map[$hopsys])) {
           // Dann weisen wir was zu
           $hopsys_map[$hopsys] = current($letters);
           // Überschreiben das Hoppingsystem
           $hopsys = current($letters);
           // Und bereiten uns auf das nächste vor...
           next($letters);
         }
         // Mapping gesetzt?
         if (isset($hopsys_map[$hopsys]))
             // Gemappten Wert zuweisen
             $newcells[$ci][$orderrt][$i] = $hopsys_map[$hopsys];
         else
             // Original-Hopping-System zuweisen
             $newcells[$ci][$orderrt][$i] = $hopsys;
       } else {
         // Hier ist kein Hopping konfiguriert
         $newcells[$ci][$orderrt][$i] = "-";
       }
     }
     // Nächster RT...
     $orderrt++;
   }
}

MfG, Sebastian Nohn
-- 
sebastian nohn - wismarer Str. 22 - 53757 sankt augustin - germany
mobile: +49 170 4718105 email: sebastian at nohn.net web: http://nohn.net
did i help you? consider a gift: http://wishlist.nohn.net/
pgp/gpg encrypted mail welcome: http://nohn.net/pubkey.asc


php::bar PHP Wiki   -   Listenarchive