Mailinglisten-Archive |
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