Stefan Schälle: 2 Dimensionales Array Filtern

Wie kann ich aus diesem Array $test[x][y] alle Elemente mit dem gleichen x Wert herausfiltern??? array_filter() hab ich wohl nicht ganz verstanden.

Sollte möglichst schnell sein, da es nachher das Wichtigste Gild in einer Realtimeapplikation sein sollte, deshalb verwendi ich auch nicht die db.

Besten Fank chon im vorherein.

Gruss Stefan

  1. Hallo Stefan,

    Wie kann ich aus diesem Array $test[x][y] alle Elemente mit dem gleichen x Wert herausfiltern??? array_filter() hab ich wohl nicht ganz verstanden.

    Mit array_filter() kannst das recht gut lösen, Du brauchst ja lediglich eine Funktion die array_filter verwenden soll. Ich habe da mal einen Lösungsansatz, vielleicht kannst Du darauf aufbauen:

    <?php

    //Testarray
    $array = array (1, 2, 3, 4, 5, 6, 7, 8, 2, 2, 9, 10, 11, 12);

    //Konstante für gesuchten Wert
    define( "C_FILTER_VALUE", 2 );

    //Filterfunktion
    function filter( $value )
    {
      if( $value == C_FILTER_VALUE )
      return( $value );
    }

    //Ausgabe
    echo ( "Filter nach Wert " . C_FILTER_VALUE .  ":<br>" );
    print_r( array_filter($array, "filter") );

    ?>

    Hoffe es hilft Dir weiter,
    Gruss AndreD

  2. $text[1] liefert dir doch bereits ein Feld mit den Elementen auf $text[x][y], für die x=1 gilt. Wo ist das Problem?

    MfG
    GK

    1. $text[1] liefert dir doch bereits ein Feld mit den Elementen auf $text[x][y], für die x=1 gilt. Wo ist das Problem?

      MfG
      GK

      Bei mit hat dann aber foreach($text[1] as $elem) hat nich funktioniert.

      Besten Dank

      1. Dann ist $test[1] kein Feld oder das Feld ist leer. Das kannst Du aber vorher mit is_array($test[1]) und count($text[1]) prüfen. Voraussetzung ist natürlich, dass $test überhaupt ein Feld ist. Prüfung wie angegeben.
        Eine nützliche Funktion, um sich anzugucken, was in einer Variable drin ist ist übrigens:

        function Display(&$var)
        {
          if (is_array($var))
          {
            $count = 0;
            echo "{";
            foreach($var as $key => $value)
            {
              if (0 < $count)
                echo ", $key=>";
              else
                echo "$key=>";
              Display($value);
              ++$count;
            }
            echo "}";
          }
          else if (is_integer($var))
          {
            echo $var;
          }
          else if (is_bool($var))
          {
            echo $var ? "true" : "false";
          }
          else if (is_null($var))
          {
            echo "null";
          }
          else if (is_string($var))
          {
            echo "'$var'";
          }
          else if (is_object($var))
          {
            echo "{class=", get_class($var);
            $properties = get_object_vars($var);
            Display($properties);
            echo "}";
          }
          else
          {
            echo $var;
          }
        }

        Wenn obige Lösungen nicht weiterhelfen, poste doch mal die Ausgabe von Display($test) und den nicht funktionierenden Codeabschnitt.

        MfG
        GK

        1. Moin!

          Eine nützliche Funktion, um sich anzugucken, was in einer Variable drin ist ist übrigens:

          function Display(&$var)

          [ ] Du kennst var_dump() und print_r().

          - Sven Rautenberg

          --
          ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
          1. [ ] Du kennst var_dump() und print_r().

            [x] Ich kenne var_dump() und print_r
            [ ] Ich hab' das PHP Handbuch auswendig gelernt

            Wegen der Formatierung der Ausgabe benutze ich das nicht und hab' deswegen grad nicht dran gedacht. Danke für die Ergänzung, Du hast natürlich recht.

            MfG
            GK

            1. Moin!

              [x] Ich kenne var_dump() und print_r
              [ ] Ich hab' das PHP Handbuch auswendig gelernt

              Wegen der Formatierung der Ausgabe benutze ich das nicht und hab' deswegen grad nicht dran gedacht. Danke für die Ergänzung, Du hast natürlich recht.

              Hm, ich habe eigentlich kein Problem mit den eingebauten Funktionen. Man kriegt damit sehr schnell heraus, was in Variablen drinsteht - und wer es gerne formatiert hat, setzt die Ausgabe von var_dump() einfach in einen <pre>-Bereich.

              - Sven Rautenberg

              --
              ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
              1. Merci für eutre Tips.

                Leider wäre ich schon auf dem richtigen Weg gewesen, jedoch hatte das Array doch echt keine Werte drin.

                Gruss Stefan

                ------------------------------------------------
                check out: EXTRA AWARDS:
                FOR THE BEST DJ, BAND AND DANCE-GROUP http://www.extraawards.ch
                ------------------------------------------------