array_intersect() mit unterschiedlichen array - wie?

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

  • #16
    array_unique() ist die schreibweise egal
    Zuletzt geändert von XGremliN; 27.11.2007, 13:01.
    it's not a bug,
    it's a feature!

    Kommentar


    • #17
      array_unique() ist die schreibweise egal
      Kann ich mir nicht vorstellen
      Note: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same. The first element will be used.
      @topicstarter
      http://ch2.php.net/manual/en/functio...ique.php#78801

      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)

      Kommentar


      • #18
        Original geschrieben von XGremliN
        array_unique() ist die schreibweise egal
        Dann sieh Dir mal das Ergebniss hiervon an:
        Code:
                          $a = array('aaa' => '#1', 'AAA' => '#2',  'ccc' => '#3');
                          $diff = array_unique($a);
                          print_r($diff);

        Kommentar


        • #19
          Original geschrieben von jahlives
          Kann ich mir nicht vorstellen

          @topicstarter
          http://ch2.php.net/manual/en/functio...ique.php#78801

          Gruss

          tobi
          Diese Funktion gibit dasselbe Ergebniss aus wie array_unique:

          $a = array('aaa' => '#1', 'AAA' => '#2', 'ccc' => '#3');
          #$diff = array_unique($a);
          function array_iunique($diff) {
          return array_intersect_key($diff,array_unique(array_map(strtolower,$diff)));
          }
          print_r($diff);

          Mache ich da etwas falsch?

          Kommentar


          • #20
            Was ist eigentlich dein End-Ziel? Vielleicht kann man dich irgendwann von deinen Irr-Wegen wegholen?

            Kommentar


            • #21
              Mache ich da etwas falsch?
              Mal ne Frage: Wie kommst du drauf, dass array_unique() die Schlüssel eines Arrays bearbeiten würde? Es geht um die Werte der einzelnen Einträge und nicht um deren Key. Du kannst in einem Array gar nicht zwei identische Keys haben, da sonst der zweite Eintrag mit demselben Key den ersten einfach überschreibt.

              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)

              Kommentar


              • #22
                Original geschrieben von TobiaZ
                Was ist eigentlich dein End-Ziel? Vielleicht kann man dich irgendwann von deinen Irr-Wegen wegholen?
                Mein Ziel ist es , einzelne PHP-Funktionen besser zu verstehen.
                EDIT: Ein End-Ziel gibt es nicht, in welcher Form auch immer.
                Zuletzt geändert von janein; 27.11.2007, 14:07.

                Kommentar


                • #23
                  Achso, ...

                  OffTopic:
                  eigentlich machen alle Funktionen das, was auch in der Doku steht.

                  Kommentar


                  • #24
                    Original geschrieben von TobiaZ
                    Achso, ...

                    OffTopic:
                    eigentlich machen alle Funktionen das, was auch in der Doku steht.
                    In der Doku steht, dass array_unique() case sensitive ist. Was da nicht steht ist, wie es auch case insensitive geht. Hast Du vielleicht neben Deinen pädagogischen Empfehlungen auch ein Beispeil für case insensitives array_unique()?

                    Kommentar


                    • #25
                      Diese Funktion gibit dasselbe Ergebniss aus wie array_unique:

                      $a = array('aaa' => '#1', 'AAA' => '#2', 'ccc' => '#3');
                      #$diff = array_unique($a);
                      function array_iunique($diff) {
                      return array_intersect_key($diff,array_unique(array_map(strtolower,$diff)));
                      }
                      print_r($diff);
                      Wen wundert es? Oder siehst du in diesem Array irgendwo doppelte Werte???
                      Tipp key !== value

                      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)

                      Kommentar


                      • #26
                        Du hast eben noch gesagt, dass du die Funktionen verstehen willst. Auf einmal hast du doch ein konkretes Ziel. Sorry, Erziehung scheint mir bei dir die beste Hilfe zur Selbsthilfe zu sein.

                        Dein Problem scheint zu sein, dass du deine Probleme nicht erkennst, geschweige denn ausdrücken kannst.

                        eine funktion für array_iunique (auch wenns eigentlich schwachsinn ist) hast du ja schon gefunden.

                        PHP-Code:
                        <?php

                        print_r
                        (array_iunique(array('a','A','b')));

                        function 
                        array_iunique($array) {
                            return 
                        array_intersect_key($array,array_unique(
                                         
                        array_map(strtolower,$array)));
                        }

                        ?>
                        Funktioniert wie gewünscht.

                        Dass du so grundlegende Dinge wie Schlüssel und Werte nicht auseinanderhalten kannst, behindert natürlich etwas beim erreichen deiner Ziele.

                        In diesem Sinne.
                        grundlagen!!!

                        Kommentar


                        • #27
                          Und warum erhalte ich bei Deinem copy and paste Beispiel das:

                          Code:
                          Fatal error: Call to undefined function: array_intersect_key()
                          ?

                          Kommentar


                          • #28
                            Und warum erhalte ich bei Deinem copy and paste Beispiel das:
                            Weil du eine PHP Version < 5.1.0 verwendest. Das stünde auch im Manual zu dieser Funktion. Jetzt wird es aber mal Zeit das du dort reinschaust

                            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)

                            Kommentar


                            • #29
                              Wenn noch jemand ein ähnlichen Fall hat, hier eine Lösung, neben all den vergebliche pädagogischen Ratschlägen:

                              $b = array('aaa','bbb','AAA');
                              function array_iunique($arr){
                              foreach ($arr as $key => $value) {
                              $arr[$key] = strtolower($value);
                              }
                              return array_unique($arr);
                              }
                              $new_array = array_iunique($b);
                              print_r($new_array);
                              Zuletzt geändert von janein; 27.11.2007, 14:44.

                              Kommentar

                              Lädt...
                              X