Mailinglisten-Archive |
>bedingt dadurch das array_count_values den Key mit dem Wert schon >getauscht hat, brauchte ich Deine Vorlage nur etwas ändern: Äh, das wiederum versteh' ich nicht, denn der veränderte code, so wie Du ihn gepostet hast, dürfte nicht funktionieren, wenn die $zuerst-arrays die Form haben, wie Du sie skizziert hast ... >foreach ($zuerst as $datenarray) > foreach($datenarray as $cnt => $wert) > _(at)_$tmparray[$wert] += $cnt; > >Es klappt super toll, nur ich verstehe es noch nicht ganz wie es geht. >Wieso $zuerst und nicht $zuerst[$y] $zuerst ist ja ein array, foreach durchläuft jedes Element dieses arrays mit der Variablen hinter dem "as", also $datenarray >und wo vergleicht er den Key damit >der Wert addiert wird ?!?!?!?!?!? Der vergleicht gar nicht :-) Nehmen wir als Beispiel mal diese Zeilen aus Deinen $zuerst-arrays und schauen, was die innere Schleife macht 3 17113 -> $tmparray[17113]=nix+3 1 18513 -> $tmparray[18513]=nix+1 3 17113 -> $tmparray[17113]=3+3 3 14313 -> $tmparray[14313]=nix+3 usw. $tmparray enthält ja erstmal nix (darum braucht's auch den _(at)_, damit bei der Addition die entsprechende Fehlermeldung unterdrückt wird und statt dessen halt der Wert 0 genommen wird), dann wird für jeden Deiner WERTE der entsprechende Zähler in einen Feld aufaddiert Bei der Ausgabe müssen dann wieder Wert und Zähler "richtigherum" ausgelesen werden: foreach ($tmparray as $wert=>$cnt) echo $cnt.' '.$wert.'<br>'; Ist's nun klarer? --- Thomas Beckmann, Kiel, Germany beckmann_(at)_gis.de
php::bar PHP Wiki - Listenarchive