Hello,
Hi!
Allerdings ist das so eine Sache mit dem automatischen Entfernen von "Doubletten". Die Funktion schaut ja nur nach den Schlüsseln und die Werte, die dahinter stecken, können durchaus unterschiedlich sein.
Welches ist dann der Wert, der bleiben darf und welcher muss gehen?<quote source=http://de3.php.net/array-merge>
Haben die Arrays den gleichen numerischen Schlüssel, dann wird der hintere Wert den vorhergehenden nicht überschrieben, sondern angehängt.
</quote>
Sorry, da hatte ich den falschen Link weggelöscht. Meine Aussage bezieht sich natürlich auf Array_unique()
Zum Entfernen der Dubletten verwende ich array_unique():
<quote source=http://de3.php.net/array-unique>
Erst behandelt array_unique() die Werte als Strings und sortiert sie, danach wird der erste gefundene Schlüssel behalten, und alle folgenden Schlüssel ignoriert.
</quote>und auch hier sehe ich kein Problem, weil hier nur tatsächlich doppelte Werte eliminiert werden.
Also nochmal zum Allgemeinverständnis:
Array liste1
(
[rot] => eins
[gelb] => drei
[blau] => zwei
[grau] => sieben
)
Array liste2
(
[grau] => acht
[rot] => zwei
[gelb] => elf
[lila] => zwei
[violett] => sieben
)
werden nun durch $_out = array_merge($_liste1,$_liste2) zusammengeführt:
Array out
(
[rot] => zwei
[gelb] => elf
[blau] => zwei
[grau] => acht
[lila] => zwei
[violett] => sieben
)
Doppelte Schlüssel werden beim Merge beseitigt, da einem beeits vorhandenen Schlüssel von Liste 1 der Wert aus Liste 2 zugewiesen wird.
Nun noch $_out = array_unique($_out):
Array out
(
[rot] => zwei
[gelb] => elf
[grau] => acht
[violett] => sieben
)
Hier bleibt der erste auftretende Wert erhalten (rot=>zwei) Alle wiederholten Werte werden ignoriert.
Man muss sich also ggf. über die Reihenfolge der Parameter in array_merge() voher Gedanken machen. Man könnte daraus eine nette PHP-Aufgabe machen: Kommt dieses Schlüssel-Wert-Paar durch? (Wetten werden angenommen).
Mehr wollte ich vorhin damit eigentlich auch nicht sagen... ;-)
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen