Ankündigung

Einklappen
Keine Ankündigung bisher.

IF mit allen Zahlen von Zahl+22

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • IF mit allen Zahlen von Zahl+22

    Hallo,

    ich habe diese if-Abfrage:

    if ($count == 38 or $count == 60 or $count == 82 or $count == 104 or $count == 126 or $count == 148 or $count == 170 or $count == 192....or $count == 91{
    Aktion
    }

    Also von der Zahl 30 anfangend, geht es immer Zahl + 22...bis zur Zahl 918.

    Gibt es irgendwie die Möglichkeit diese if-Abfrage zu vereinfachen oder gar die zahle automatisch ausrechen zu lassen? Oder wirklich nur die Variante alle einzeln mit $count == einzutragen?

    Danke für die hilfe

  • #2
    Hallo BartTheDevil89,

    ich würde das in einer Schleife mit in_array() lösen. Du kannst dir zuerst das $count erzeugen - wie auch immer - und anschließend die Serie von Zahlen, die du prüfen möchtest. Nachließend durchläufst du eine for-Schleife mit einem geeigneten Range und prüfst, ob die Aktion ausgeführt werden soll oder auch nicht.

    Kommentar


    • #3
      Und welchen Sinn machen diese Zahlen?

      PHP-Code:
      <?php
      if (in_array($countrange(3891822)) {
        
      //..
      }
      ?>

      Kommentar


      • #4
        Klassischer Fall für Modulo 22 würde ich sagen. Ob's aber performanter als Eure Lösung ist weiß ich nicht, ist schließlich ne Division...

        Kommentar


        • #5
          hi,

          das ist eine Arithmetische Folge.

          die formel dafür ist:

          ai = a0 + i * d
          demnach müsstest du nur wie folgt deine zahl prüfen:

          PHP-Code:
          <?php
          function valid($zahl,$start=38,$folge=22,$maximal=918)
          {
               if(
          $zahl<=$maximal && $zahl>$start)
               {
                     
          $zahl-=$start;
                     return (
          $zahl%$folge===0);
               }

               return 
          FALSE;
          }

          var_dump(valid(258),valid(1),valid(918),valid(1000));
          gruß

          Kommentar


          • #6
            sicherlich die beste Lösung

            Kommentar

            Lädt...
            X