Überprüfen ob ein Bereich in einem Bereich liegt

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Überprüfen ob ein Bereich in einem Bereich liegt

    Hi,
    ich zermatere mir nun schon seit einiger Zeit den Kopf über ein kleines Problem. Nehmen wir mal an wir haben einen Zahlenberiech von 0 - 100 .

    Nun habe ich mir willkürlich einen Bereich daraus herausgesucht bsp. 43-76. Jetzt möchte ich abfragen ob der Bereich bsp. 24-56 sich mit dem ersten Bereich schneidet.
    Mir fällt keine andere Lösung ein, als jeen einzelnen Wert von 24-56 abzuklappern und zu fragen ob dieser
    x >= 24 AND x <= 76
    ist.
    Kennt jemand vielleicht eine einfachere Lösung, bzw. eine PHP-Function die das für mich erledigt ?

    MfG Daether

  • #2
    Schreib deine Zahlen in einen Array. Dann kannst du mit in_array() nachschauen, ob eine Zahl darin vorkommt.
    it's not a bug,
    it's a feature!

    Comment


    • #3
      Spontan fällt mir das ein (ungetestet):
      PHP Code:
      $numbers_a range(0100); // 0, 1, 2, 3 .. 100
      $numbers_b range(1530); // 15 .. 30

      if (in_array($numbers_b$numbers_a))
      {
          
      // zahlenbereich b ist in zahlenbereich a

      Nieder mit der Camel Case-Konvention

      Comment


      • #4
        problem wäre, das der Aufwand immernoch sehr hoch wäre.
        ich müsste jeden einzelnen Wert mit dem Array überprüfen und diesen auch vorher noch füllen.
        PHP Code:
        #
        $numbers_a range(0100); // 0, 1, 2, 3 .. 100
        $numbers_b range(1530); // 15 .. 30
        if (in_array($numbers_a$numbers_b))
        {
            echo 
        "\n\n\nTRUE\n\n" ;

        funktioniert leider nicht.

        Comment


        • #5
          Das sind nur ein paar, simple Zeilen Code. Wo siehst du den Aufwand? Mir persönlich fällt gerade keine simplere Lösung ein. Am besten erklärst du dein Problem etwas genauer.
          EDIT:

          Lies dir im Manual bitte mal die Funktionesreferenzen von range() und in_array() durch. Du musst die Arrays eben nicht selbst füllen, das macht die Funktion range selbst, wenn du ihr Mininmal- und Maximalwert angibst. in_array() erspart dir jedes Element einzeln durchgehen zu müssen.

          Last edited by Griecherus; 12-02-2007, 10:21.
          Nieder mit der Camel Case-Konvention

          Comment


          • #6
            Du hast auch die Parameter $numbers_a und $numbers_b in in_array() vertauscht. Bitte nochmal mein Code-Snippet ansehen.
            Nieder mit der Camel Case-Konvention

            Comment


            • #7
              So als Vorschlag:
              Benutze array_intersect_assoc() welche dir die Schnittmenge zweier Arrays zurückgeben sollte

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Comment


              • #8
                ersteinmal danke

                @Griecherus :
                Stimmt beim, habs falsch hierhereinkopiert, ging aber trotzdem nicht. Außerdem habe ich nicht richtig nachgedacht bei meiner Antwort, entschuldige das bitte.

                @jahlives :
                Sowas schönes habe ich gesucht
                So funktioniert das nun :
                Allerdings
                PHP Code:
                $numbers_a range(0100); // 0, 1, 2, 3 .. 100
                $numbers_b range(1530); // 15 .. 30

                $erg array_intersect $numbers_a $numbers_b ) ;

                print_r $erg ) ; 
                Last edited by Daether; 12-02-2007, 10:30.

                Comment

                Working...
                X