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