Tom: Array aufteilen

Beitrag lesen

Hello,

Ich habe ein Array, welches ich nach bestimmten Merkmalen aufteilen

möchte?

Mein Array sieht in etwa so aus: BIO1, BIO2, DE1, DE2, DE3, DE4, DE5, EN1, EN2, EN3, EN4, FR1, GE1, GE2, MA1, MA2, MA3, MA4, PH1, PH2, PH3, de1, de2, de3, de4, en1, en2, en3, geo4, geo5, geo6, geo7, gk1, gk2, inf1, inf2, inf3, inf4, s1, s2, s3, s4, s6, s7, s8, s9, s10, s11

Stellt sich die Frage, wer ein so bescheuertes Array aufgebaut hat.
Hier wurden Relationen litereal verschlüsselt.
Das willst Du nun also wieder rückgängig machen.

Dann muss Dein Array nachher aher so aussehen:

Array 1: ['BIO'][1]['Freitag, 10:00']

['BIO'][1]['Montag, 08:50']
           ['BIO'][2] ...
           ['DE'][1] ...
           ['DE'][2] ...
           ['DE'][3] ...
           ['DE'][4] ...

Da es hier 'nur' um die Trennung von Buchstabenketten von Ziffernketten geht bei einer Trennstelle, sollten zwei einfache Funktionen dafür ausreichen.

Eine ist fertig und heißt substr(), left(), oder right()

die andere muss nur die Position der ersten Ziffer im String finden

function get_first_numaral_pos($literal)
{
    $strlen = strlen($literal);
    $pos = 0;

while ($pos < $strlen)  // oder auch als for-Schleife...
    {
        if (ord($literal[$pos]) >= 48 and ord($literal[$pos]) <= 57)
        {
            return $pos;
            $pos++;
        }
    }
    return false;
}

und dann beschaffst Du dir mittels der beiden Funktionen den Alpha- und den Numeral-Anteil des Literals und baust damit deine Array-Elemente auf.

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de