Zahlen in einem Array nicht doppelt auflisten und zählen

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

  • Zahlen in einem Array nicht doppelt auflisten und zählen

    Guten Abend zusammen,

    ich habe vor ein paar Tagen mit PHP angefangen und komme auch recht gut vorran.

    Nun möchte ich einen kleinen Script für Statistik erstellen, stosse jedoch auf Probleme.

    UM mein Anliegen zu verdeutlih habe ich ein paar Screens geschossen:
    Das ist das Forumlar in den ich eine Reihe von Zahlen eingebe, die jewils mit einem Leerzeichen getrennt sind.


    Per explode ($pieces = explode(" ", $urliste) werden die Zahlen nun ein ein Array gepackt und geteilt. Danach ordne ich den Array noch mit Hilfe von natsort an und gebe ihn dann geordnet aus. Das klappt auch wunderbar.

    So weit so gut, jetzt kommen wir zu meinem Problem:

    nun müsste ich eine Tabelle ausgeben in der einmal jede Zahl des Arrays aufgelistet wird. Allerdings darf jede Zahl nur einmal vorkommen, egal ob sie nun mehrmals im Array vorkommt oder nicht.

    Des weiteren sollte die Häufigkeit der Zahlen auch ausgegeben werden.

    EIn kleines Beispiel :

    Die Zahlen : 1 3 4 3 5 5 3

    Einmal soll : 1 3 4 5

    ausgegeben werden und dann noch die Häufigkeiten der jeweiligen Zahlen, also :

    1x1 (kommt 1 mal vor)
    3x3 (kommt 3 mal vor)
    1x4 (kommt 1 mal vor)
    2x5 (kommt 2 mal vor)


    Danke

    EDIT: Habe soeben in der suche den Befhel "array_unique" gefunden, kann ihn jedoch nicht richtig anweden.
    Zuletzt geändert von struggler; 27.11.2006, 21:16.

  • #2
    woran scheiterst du beim anwenden von array_unique. lass dir bitte nicht alles aus der nase ziehen.

    vielleicht machst du es aber auch einfach so.

    foreach(dein array as v)
    if(!isset($counter[v]))
    $counter[$v] = 1;
    else
    $counter[$v]++;

    und dann nur noch das counter-array ausgeben.
    Zuletzt geändert von TobiaZ; 27.11.2006, 21:23.

    Kommentar


    • #3
      schau die mal das an.

      gruß
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        PHP-Code:
        $daten = array(1,2,3,4,4,4,2,3);
        $out = array();
        foreach(
        $daten as $wert){
            if(
        array_key_exists($wert,$out)){
                
        $out[$wert] += 1;
            }else{
                
        $out[$wert] = 1;
            }

        Sollte dir ein Array geben mit den Zahlen als Key und der Anzahl als jeweiliges Element zu $key.

        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


        • #5
          Sry, wenn ich mich etwas vage ausgedrückt habe

          Das Problem mit array_unique konnte ich soeben selber beheben, dann bleibt jetzt nur noch die Frage der Häufigkeiten stehen

          Dennoch Danke für die Antwort !

          Edit: jahlives ich schaue mal ob ich das in meinen Qullcode einbauen kann, wenn nicht melde ich mich nochmal.

          Zuletzt geändert von struggler; 27.11.2006, 21:40.

          Kommentar


          • #6
            Leute ihr seid die Besten !

            Ich hätte nicht gedacht, dass ich zum einen sooo schnell eine, geschweige den mehrere Antworten bekomme.


            Ich danke euch vielmals, es funzt genauso wie es soll.

            Kann aber sein , dass ich euch schon bald mit neuen Fragen zuballern werde.

            Nochmal Danke

            Edit: Sry für den Doppelpost, aber das musste raus

            Kommentar

            Lädt...
            X