phpbar.de logo

Mailinglisten-Archive

[php] =?ISO-8859-1?Q?Re:_[php]_Re:_[php]_Re:_[php]_Bitte_um_Hilfe_wie_man_Array?= =?ISO-8859-1?Q?'s_Zusammenf=FCgt_(array=5Fmerge=5Frecursive)_oder_anders_?= =?ISO-8859-1?Q?!=3F?=

[php] Re: [php] Re: [php] Re: [php] Bitte um Hilfe wie man Array 's Zusammenfügt (array_merge_recursive) oder anders !?

Thomas Beckmann php_(at)_phpcenter.de
Tue, 19 Jun 2001 15:15:49 +0200


>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.'&nbsp;'.$wert.'<br>';

Ist's nun klarer?

---
Thomas Beckmann, Kiel, Germany
beckmann_(at)_gis.de


php::bar PHP Wiki   -   Listenarchive