![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: basi, 30. 08. 2003, 19:47
Hi,
ich füge mit array_merge() vier array zusammen, das daraus entstandene hat folgende Inhalte:
(links der index, die beiden pipelines sind nur an die Ausgabe angehängt, stehen also nicht im arrayFeld)
0 |188|
1 |321|
2 |367|
3 |321|
4 |337|
5 |349|
6 |367|
Dann will ich die mehrfachen raushaben, benutze array_unique(). Danach sieht das array so aus:
0 |188|
1 |321|
2 |367|
3 ||
4 |337|
Warum klaut die Funtktion mir den Eintrag mit dem Inhalt 349?
Stimmt da was mit der Funktion nicht oder wende ich sie falsch an?
Code:
$allArr = array_merge($nameArr, $zuordnungsArr, $keywordArr, $genreArr);
$linkArr = array_unique($allArr);
Die folgende Nachricht zum Thema stammt von: MudGuard, 30. 08. 2003, 21:42
Hi,
»» Warum klaut die Funtktion mir den Eintrag mit dem Inhalt 349?
»» Stimmt da was mit der Funktion nicht oder wende ich sie falsch an?
Es könnte auch sein, daß der Code, mit dem Du das Array vorher und/oder nachher anzeigst, falsch ist...
Sieht irgendwie so aus, als ob Du die ersten array-length Indizes anzeigen läßt.
Was passiert bei Anzeige über
foreach ($linkArr as $key => $value)
{
echo "$key |$value|";
}
Aus der PHP-Doku zu array_unique: Note that keys are preserved.
cu,
Andreas
--
Der Optimist: Das Glas ist halbvoll. - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
Die folgende Nachricht zum Thema stammt von: basi, 31. 08. 2003, 17:42
Hi, erst einmal danke, das Array ist doch richtig gefüllt!
»» Es könnte auch sein, daß der Code, mit dem Du das Array vorher und/oder nachher anzeigst, falsch ist...
Ich habs so angezeigt:
for($i=0;$i<count($linkArr);$i++)
print "<br>$i |" . $linkArr[$i] . "|";
»» Sieht irgendwie so aus, als ob Du die ersten array-length Indizes anzeigen läßt.
»» Was passiert bei Anzeige über
»» foreach ($linkArr as $key => $value)
»» {
»» echo "$key |$value|";
»» }
»»
»» Aus der PHP-Doku zu array_unique: Note that keys are preserved.
Damit gehts richtig. Aber ich verstehe nicht so ganz, warum. $linkArr[$i] ist doch immer der Wert, wenn das Array eindimensional ist. Und die anderen Werte zeigt er ja auch richtig an. Was verstehe ich falsch?
Gruß, basi
Die folgende Nachricht zum Thema stammt von: MudGuard, 31. 08. 2003, 18:18
Hi,
»» »» Aus der PHP-Doku zu array_unique: Note that keys are preserved.
»»
»» Damit gehts richtig. Aber ich verstehe nicht so ganz, warum. $linkArr[$i] ist doch immer der Wert, wenn das Array eindimensional ist. Und die anderen Werte zeigt er ja auch richtig an. Was verstehe ich falsch?
Das Array vorher:
key : value
0 : 188
1 : 321
2 : 367
3 : 321
4 : 337
5 : 349
6 : 367
Das Array nachher (Duplikate wurden gelöscht, aber die Keys wurden nicht verändert):
key : value
0 : 188
1 : 321
2 : 367
4 : 337
5 : 349
Beachte die ERSTE Spalte.
array_unique ändert die keys nicht (so wie es in der Doku steht).
Der Wert 349 steht also nach wie vor bei key 5.
Du hast aber die Werte zu den Keys 0, 1, 2, 3, 4 ausgegeben mit Deiner Schleife...
cu,
Andreas
--
Der Optimist: Das Glas ist halbvoll. - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
Die folgende Nachricht zum Thema stammt von: basi, 31. 08. 2003, 18:44
Ah, jetzt hab ichs verstanden, danke!
Gruß, basi
© 1998-2006
Impressum, Software: Classic Forum