array_intersect() mit unterschiedlichen array - wie?

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

  • array_intersect() mit unterschiedlichen array - wie?

    So sehen die zwei array aus aus denen die Schnittmenge gebildet werde soll:

    $a = array('aaa' => '#1','bbb' => '#2','ccc' => '#3');
    $b = array('aaa','bbb','xxx');

    $diff = array_intersect($a,$a);
    print_r($diff);

    Die Schnittmenge dieser Array wäre aaa,bbb.

    Doch das Ergebniss ist das folgende und es ist dasselbe Ergebniss wenn array_merge() verwendetwürde was aus falsch ist.
    Array ( [aaa] => #1 [bbb] => #2 [ccc] => #3 )

    Weiß jemand wo der Fehler liegt und eine Lösung?

  • #2
    Die Schnittmenge dieser Array wäre aaa,bbb.
    Falsch! Du Verwechselst die Werte mit den Schlüsseln.

    Dazu kommt, dass sowas hier natürlich totaler Unfug ist:
    $diff = array_intersect($a,$a);

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      Falsch! Du Verwechselst die Werte mit den Schlüsseln.
      Dann ist meine Frage falsch gestellt.

      Wie erreiche ich, dass aus den arrays "aaa,bbb" als Schnittmenge sondiert werden?
      Es sollte $diff = array_intersect($a,$b); lauten. :-)

      Kommentar


      • #4
        Am einfachsten durch kurzes Nachdenken:

        Ich bin mir sicher, dass du dich nicht mal bemüht hast deine Fehler nachzuvollziehen, geschweige denn irgendetwas ausprobiert hast, du faule ...

        $diff = array_intersect(array_keys($a),$b);
        EDIT:
        Es sollte $diff = array_intersect($a,$b); lauten. :-)
        Naja, wenigstens nen Teil verstanden.

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          Am einfachsten durch kurzes Nachdenken:

          Ich bin mir sicher, dass du dich nicht mal bemüht hast deine Fehler nachzuvollziehen, geschweige denn irgendetwas ausprobiert hast, du faule ...

          $diff = array_intersect(array_keys($a),$b);
          EDIT:
          Naja, wenigstens nen Teil verstanden.
          man bist Du schnell, und denkst dabei noch, dass ich faul wäre ... :-)

          Kommentar


          • #6
            Ja. Das ist der unterschied, ich überlege mir vor dem Posting noch die Lösung, du nicht ansatzweise...

            Aber ich will dich nicht belehren, dafür mach ich das hier schon zu lange.

            Kommentar


            • #7
              @Danke, für die Hilfe.
              Damit Du meine Frage verstehst. Ich kannte array_keys() bisher nicht.

              Kommentar


              • #8
                Wie prüfe ich ob eine Variable ein String oder ein array ist?

                Kommentar


                • #9


                  Glaubst jetzt nicht wirklich, dass dir alle deine Fragen der Reihe nach beantwortet werden und du gar nicht mehr selber suchen brauchst...

                  array (zugegeben, es steht nicht in der Liste, aber auf der Seite)

                  http://www.php-resource.de/forum/sea...der=descending

                  Kommentar


                  • #10
                    @TobiaZ
                    Leider hab ich bisher noch keine Antwort, deshalb suche ich noch und stelle Fragen, in der Hoffnung, dass es jemand weiß und ich nicht weiter suchen muss.

                    Kommentar


                    • #11
                      Hint: array Unter "Siehe auch"

                      Kommentar


                      • #12
                        Woran könnte es liegen, dass diese array keine Schnittmenge bilden, obwohl sie müssten?

                        $a --> Array ( [0] => aaa[1] => bbb[2] => ccc [3] =>...

                        $b --> Array ( [aaa] => #1 [bbb] => #2 [xxx] => #3 ...


                        $gmenge = array_intersect($a,array_keys($b));

                        Kommentar


                        • #13
                          PHP-Code:
                          $a = array ( 'aaa''bbb''ccc' );
                          $b = array ( 'aaa' => 0'ccc' => );
                          print_r array_intersect $aarray_keys $b ) ) ); 
                          Code:
                          Array ( [0] => aaa [2] => ccc )
                          Prüf mal deinen Code bevor du dich hier beschwerst
                          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                          Kommentar


                          • #14
                            Und versuch doch wenigstens ansatzweise nachzuvollziehen, was du da machst...

                            Kommentar


                            • #15
                              array_unique() ohne cases sensitive - geht das?

                              Wie erreicht man mit array_unique() einen Vergleich der nicht Gross- oder Kleinscheibung beachtet?

                              Kommentar

                              Lädt...
                              X