array schnittmenge

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

  • array schnittmenge

    Hallo zusammen,

    ich möchte die Schnittmenge unbestimmt (variabel) vieler Arrays haben.
    Wenn ich weiß, wie viele Arrays ich habe ist das kein Problem, dann nehme ich die Funktion array_intersect und habe mein Ergebnis. Dafür ist aber Voraussetzung, dass ich die einzelnen Arrays benennen kann.

    Hat einer ´ne Idee?
    Besten Dank!

  • #2
    welcome ...

    wo kommen diese arrays her ... poste mal ein beispiel.
    Kissolino.com

    Kommentar


    • #3
      ja, sorry, so war das noch nix:

      stellen wir uns vor, es geht um Belegungszeiten von Ferienhäusern. Belegte Tage des Jahres werden eingelesen in etwa so:
      $hausbeleg[$row_rec1['haus']][] = 100+number_format(strftime("%j", ($anfang + $a)));

      und mit

      $hausbeleg_neu = array_intersect($hausbeleg[1],$hausbeleg[2],$hausbeleg[3],$hausbeleg[4],$hausbeleg[5],$hausbeleg[6],$hausbeleg[7],$hausbeleg[8]);

      bekome ich dann die Tage, die in jedem einzelnen Haus belegt sind. Das ist kein Problem, solange ich immer genau weiß, von wie vielen Häusern die Rede ist.
      Nun bin ich aber versucht, das ganze ein bißchen dynamischer zu handhaben. Könnte ja schnell mal ein Haus mehr oder weniger werden.

      UPDATE:
      habe es glaube ich hinbekommen, aber da ich euch belästigt habe:
      ich packe es in eine schleife und vergleiche eins nach dem anderen, so dass am Ende nur noch die belegten übrigbleiben.

      danke für die schnelle antwort
      Zuletzt geändert von fragen; 16.04.2004, 15:35.

      Kommentar


      • #4
        stellen wir uns vor, es geht um Belegungszeiten von Ferienhäusern
        Natürlich nur rein hypothetisch!

        Hmm, was mir spontan einfällt: die namen der arrays in ein array packen. dieses array dann implode()n und dann nachher nen eval('$bla = arr_intersec('.implode.')') ausführen. (PSEUDOCODE)

        Ist was mir auf die Schnelle einfällt,

        Kommentar


        • #5
          Deins geht natürlich auch. beides nicht das schönste,

          Kommentar


          • #6
            http://at.php.net/manual/de/function...func-array.php

            PHP-Code:
            $hausbeleg_neu call_user_func_array('array_intersect'$hausbeleg); 
            wie wärs hiermit ?
            mfg,
            [color=#0080c0]Coragon[/color]

            Kommentar


            • #7
              wat et allet jibt! Danke für die Antworten, jetzt funktioniert es dreimal statt nur einmal

              $ergebnis = "super!"
              for($x=1;$x<=3;$x++) {echo $ergebnis;}
              Zuletzt geändert von fragen; 17.04.2004, 15:46.

              Kommentar


              • #8
                Original geschrieben von fragen
                $ergebnis = "super!"
                for($x=4;$x<3;$x++) {echo $ergebnis;}
                ist die endlos-schleife gewollt ?
                mfg,
                [color=#0080c0]Coragon[/color]

                Kommentar


                • #9
                  Was verstehst du unter einer Endlosschleife ?
                  a) eine die nicht startet, und deshalb auch nicht endet
                  b) eine die startet, aber nicht mehr endet
                  hopka.net!

                  Kommentar


                  • #10
                    eigentlich b) *g*
                    haste recht .. die läuft ned einmal ..
                    habs mir ned so genau angesehen *rausred*

                    dann ist das lob von fragen betrug
                    mfg,
                    [color=#0080c0]Coragon[/color]

                    Kommentar


                    • #11
                      es reicht ja, wenn wir wissen, was in $super steht

                      Kommentar

                      Lädt...
                      X