Mathematische Berechnung | Hilfe

  • PHP

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von affrop.

    Mathematische Berechnung | Hilfe

    Hallo Users,

    ich habe ein Problem bei der Berechnung von verschiedene Preise/Artikeln.


    // $5 pro Service
    Premium Level 1
    Service 1
    Service 2
    Service 3
    Service 4
    Service 5

    // $8 pro Service
    Premium Level 2
    Service 1
    Service 2
    Service 3
    Service 4
    Service 5

    // $12 pro Service
    Premium Level 3
    Service 1
    Service 2
    Service 3
    Service 4
    Service 5


    Weitere Infos:
    - Premium Level 3 - Service 1 ist das beste.
    - Premium Level 1 - Service 5 ist das schlechteste

    Beispiele:
    - User ist Premium Level 2 - Service 5 und möchte dann den Premium Level 3 - Service 4 haben. Die Berechnung würde so aussehen ohne PHP.
    -> Premium Level 2 - Service 5 bis zu Premium Level 3 Service 5 sind das 5*8= $40. Dazu eine weitere da er bis Service 1 möchte dann 4*12= $48. Zusammen dann: $88
    -> Wenn der User z.B. Premium Level 2 - Service 3 ist und den Premium Level 3 Service 5 möchte sind das $28


    Wie kann ich das in PHP umsetzen? Ich bin seit Stunden hier am verzweifeln :(
    du kannst in einem multidimensionalen array deine "ränge" perfekt unterbringen:

    am beispiel von @shaebich:

    Quellcode

    1. $array['rang']['level']['service']


    bzw.

    Quellcode

    1. $array['1']['2']['3']


    dann weißt du eben die jeweiligen werte der service-dinger, jetzt musst du eben für jeden eintrag im array den preis festlegen.

    dann rechnest einfach:

    Quellcode

    1. $bezahlen = $array['1'] * $wert_von_1_service + $array['1']['2'] * $wert_von_2_service +$array['1']['2']['3'] * $wert_von_3_service


    wenns nicht stimmt dann mach deine frage präziser
    Meine Idee wäre folgende:

    Ich habe dieses Array:

    PHP-Quellcode

    1. $costs = [
    2. [800,5],[870,5],[940,5],[1010,5],[1080,5],
    3. [1150,8],[1220,8],[1290,8],[1360,8],[1430,8],
    4. [1500,12],[1570,12],[1640,12],[1710,12],[1780,12]
    5. ];


    Die erste Zahl ist sozusagen das Premium Level. Die erste 5 sind die Premium Level 1 von Service 5-1 (da 1 das beste ist)
    Dann ist in der zweiten Zeile die Premium Level 2 das gleiche dann auch mit dazu den Preisen.

    Nun möchte ich wissen.

    WENN der User Premium Level 1 - Service 2 (sprich: 800,5) wie viel hat er zu Bezahlen wenn er Premium Level 2 - Service 3 möchte (sprich 1290,8)?
    Mein Freund :D...

    mehrstufige Array sind das stichwort. Dein Array wird dir nichts bringen.

    PHP-Quellcode

    1. <?php
    2. $array[1]['level'] = 1;
    3. $array[1]['service'] = 5;
    4. $array[1]['preis'] = '800,5';
    5. $array[2]['level'] = 1;
    6. $array[2]['service'] = 4;
    7. $array[2]['preis'] = '950,5';
    8. echo '<pre>';
    9. print_r($array);
    10. echo '</pre>';
    11. ?>


    so müsste es gehen. Danach musst du nur immer dein Array durchlaufen bis zum momentan Paket und ab dann iterativ den Preis addieren und schon hast du was du willst
    Du solltest dir vielleicht zu erst eine korrekte Berechnungsvorschrift auf Papier aufschreiben und durchdenken. Dann geht der Rest von alleine.
    Arbeite mit Variablenaustausch, z.B. Level = Grundpreis.
    Dann kannst du die Services pro Level subtrahieren oder addieren.
    Musst dann halt nur mit den Vorzeichen aufpassen wenn der User up- und downgraden kann.
    Zum Beispiel:
    aktueller_Grundpreis = LevelpreisAktuell * ServiceLevelAktuell
    Preisdifferenz = LevelpreisNeu * ServiceLevelNeu
    Wenn LevelpreisNeu > LevelpreisAktuell dann Endpreis = aktueller_Grundpreis + Preisdifferenz
    Wenn LevelpreisNeu < LevelpreisAktuell dann Endpreis = aktueller_Grundpreis - Preisdifferenz
    Oder du selektierst die Endpreise durch Auswahl von Level und Service und subtrahierst beide oder so.