phpbar.de logo

Mailinglisten-Archive

[php] Mal wieder was wegen Arrays

[php] Mal wieder was wegen Arrays

Steffen Kother steffen.kother at gmx.net
Mit Mai 26 11:15:03 CEST 2004


Hallo Steffen,

War'ne ziemlich "lange" Mail, versuch's nächster Mal etwas kürzer ;-)

> Nun wollte ich $Daten so verändern, dass es auf $Vars[0] passt. Dabei
> muss ja 'in_array(strtoupper(array_keys($Daten)), $Vars[1])' gelten
> aber irgendwie wills nciht klappen.

Probiers mal so: [1]. Aus $Data, welches die Daten aus der DB hält
werden die Schlüssel entnommen und gegen $Vars[1] mit den "bereinigten"
Platzhaltern verglichen. Sofern vorhanden, wird der Schlüssel aus
$Vars[1] gezogen. Dann wird in einem ersten $Data_Tmp mit gefundenen
Schlüssel der Wert eingetragen.

Die Funktion 'check_KNDNR()' prüft mit einfachem Pattern [2], ob es
wirklich eine Kundennummer ist á la 0001234567 oder 0123456789.

Nun muss $Data_Tmp nur noch analog $Vars[1] zurückgegeben werden. Dazu
werden die restlichen Schlüssel mit " " gefüllt.

So, in der Hoffnung, dass es dir erstmal weiterhilft verbleibe ich.
Vielleicht hat ja noch jemand was günstigeres oder elganteres oder
kürzeres oder oder oder. Bis denn.

-- 
Mit freundlichen Grüßen / Kind regards

Steffen Kother

[1]
function get_Data_from_Vars($Data, $Vars) {
    $Data_Tmp = array();
    foreach(array_keys($Data) as $Key) {
        $Key_Vars = strtoupper($Key);
        $Key_Data = array_search($Key_Vars, $Vars[1]);
        if (in_array($Key_Vars, $Vars[1])) {
            $Data_Tmp[$Key_Data] =
addslashes(check_KNDNR($Data[$Key]));
        }
    }

    $Data_Tmp2 = array();
    $Felder = count($Vars[1]);
    for ($i = 0; $i < $Felder; $i++) {
        if (!isset($Data_Tmp[$i])) ($Data_Tmp[$i] = ' ');
        $Data_Tmp2[$i] = $Data_Tmp[$i];
     }

    return $Data_Tmp2;
}

[2]
preg_match('@([0-9]{10})@', $Value, $Value_Tmp);


php::bar PHP Wiki   -   Listenarchive