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