Von Hinten durchs Auge: Array unique nur viel besser!

Hallo,

ich habe ein Problem, ich habe ein riesen array (5.000 Einträge) mit einzelnen Wörtern. Bsp. $datensatz = array("Sonne","Mond","Sterne","Schlange","Auto","Sonne"); Ich könnte nun einfach http://php.net/manual/de/function.array-unique.php darüber huschen lassen und hätte eine bereinigte Liste.

Viel interessanter ist es für mich allerdings die Häufigkeit zu wissen also $datensatz_perfect = array(array("Sonne", "2"), array("Mond", "1")....

Wie könnte man das effizient in PHP lösen? Mein erster Ansatz war das erste Array Datensatz als "unique" zu setzen ($datensatz_unique) und dann in einer Foreach schleife ($datensatz_unique) im $datensatz zu suchen und das dann in ein neues Multiarray zu schreiben. Das wirkt allerdings nicht effizient. Sicher habt Ihr das bessere Ideen.

Ich freue mich schon auf regen Austausch.

  1. Tach!

    Viel interessanter ist es für mich allerdings die Häufigkeit zu wissen also $datensatz_perfect = array(array("Sonne", "2"), array("Mond", "1")....

    Wie könnte man das effizient in PHP lösen?

    Mit array_count_values().

    dedlfix.

    1. Danke, hammergeil hat funktioniert.

    2. Hello,

      Du warst in dieser Frage schneller...

      BTW:
      Ich hatte mich daran aufgehängt, dass es doch auch mal array_swap() gab, oder habe ich das geträumt? In der Funktionsreferenz ist es nicht mehr enthalten. Und sonst kann ich das auch nicht mehr finden.

      Liebe Grüße
      Tom S.

      --
      Es gibt nichts Gutes, außer man tut es!
      Das Leben selbst ist der Sinn.
      1. Tach!

        Ich hatte mich daran aufgehängt, dass es doch auch mal array_swap() gab, oder habe ich das geträumt?

        Wenn du array_flip() meinst ... das wäre aber nicht zielführend in dem Fall.

        dedlfix.

        1. Hello,

          Wenn du array_flip() meinst ... das wäre aber nicht zielführend in dem Fall.

          Danke.

          Ich hatte "swap" im Gedächtnis. Dass der Flip da den Flopp machte, hatte ich verdrängt.

          Bei der Überlegung, wie man die Aufgabe eventuell auch generisch lösen könnte, war ich nur über die vermeintlich verschwundene Funktion gestolpert - ein Luftstolperer also ... :-)

          Liebe Grüße
          Tom S.

          --
          Es gibt nichts Gutes, außer man tut es!
          Das Leben selbst ist der Sinn.