Falloutboy6
Mitglied
Hallo zusammen,
ich versuche das Problem mal verständlich zu erklären. Ich habe eine Kostenstaffel die wie folgt aussieht.
Die Zahl vor dem : ist der Preis und die Zahlen nach dem : sind die dazugehörigen PLZ Gebiete.
Mit preg_match_all lese ich mir die einzelnen Teile in ein ARRAY aus. Soweit funktioniert es ganz gut.
Wenn nun ein Auftrag abgerechnet werden soll muss ich anhand der PLZ vom Auftrag herausfinden zu welchem Preis dieser abgerechnet werden kann, eben 25 oder 35. Wenn ich jetzt eben einen Auftrag mit 90546 habe müsste am Schluss 35 rauskommen. Ich habe es mit folgendem Ansatz probiert aber komme nicht wirklich weiter, wie ich den richtigen Preis aus meinem Array rausbekomme anhand der PLZ. Die die PLZ ja 5 stellig ist und der Wert im Array nur 1 stellig oder 2. Ich kann aber nicht ausschließen, dass es auch mal einen Wert mit 3,4 oder 5 gibt. Wer kann mir hier helfen? Mein jetziger Code sieht wie folgt aus
Vielen Dank.
ich versuche das Problem mal verständlich zu erklären. Ich habe eine Kostenstaffel die wie folgt aussieht.
Code:
(25:0)(35:6,7,80,9)
Die Zahl vor dem : ist der Preis und die Zahlen nach dem : sind die dazugehörigen PLZ Gebiete.
Mit preg_match_all lese ich mir die einzelnen Teile in ein ARRAY aus. Soweit funktioniert es ganz gut.
Wenn nun ein Auftrag abgerechnet werden soll muss ich anhand der PLZ vom Auftrag herausfinden zu welchem Preis dieser abgerechnet werden kann, eben 25 oder 35. Wenn ich jetzt eben einen Auftrag mit 90546 habe müsste am Schluss 35 rauskommen. Ich habe es mit folgendem Ansatz probiert aber komme nicht wirklich weiter, wie ich den richtigen Preis aus meinem Array rausbekomme anhand der PLZ. Die die PLZ ja 5 stellig ist und der Wert im Array nur 1 stellig oder 2. Ich kann aber nicht ausschließen, dass es auch mal einen Wert mit 3,4 oder 5 gibt. Wer kann mir hier helfen? Mein jetziger Code sieht wie folgt aus
PHP:
<?php
$preis_pro_auto = "(25:0)(35:6,7,80,9)";
preg_match_all('#\((\d+):(\d+(,\d+)*)\)#', $preis_pro_auto, $treffer_kosten);
$zeile_anfragen['plz'] = 90546;
$zahl = $zeile_anfragen['plz'];
$map = array();
foreach ($treffer_kosten[2] as $idx => $prefixes) {
$prefixes = explode(',', $prefixes);
//Schleife für Kosten
foreach ($prefixes as $prefix) {
$map[$prefix] = $treffer_kosten[1][$idx];
}
}
echo "<pre>";
print_r($map);
echo "</pre>";
$preis = $map[$zahl];
echo "Zahl: " . $zahl . "<br>";
echo "Preis: " . $preis;
?>
Vielen Dank.