Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2003 Teil von August

SELFHTML Forumsarchiv
array_unique nimmt Einträge weg ?

Informationsseite
  1. Seite (PHP) array_unique nimmt Einträge weg ? von basi, 30. 08. 2003, 19:47
nach unten

array_unique nimmt Einträge weg ?

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);

nach obennach unten

array_unique nimmt Einträge weg ?

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/

nach obennach unten

array_unique nimmt Einträge weg ?

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

nach obennach unten

array_unique nimmt Einträge weg ?

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/

nach obennach unten

array_unique nimmt Einträge weg ?

Die folgende Nachricht zum Thema stammt von: basi, 31. 08. 2003, 18:44

Ah, jetzt hab ichs verstanden, danke!

Gruß, basi

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2003 Teil von August

© 1998-2006 Seite Impressum, Software: Classic Forum