2009-03-21 19 views
0

Ich habe ein Array in PHP und ich möchte Duplikate entfernen.Die PHP-Funktion array_unique funktioniert nicht

Ich wandte mich einfach an die Funktion array_unique(), um ein neues Array zu erstellen und die Duplikate zu entfernen.

Hier ist der Code:

$unlink = array(); 
$unlink = array_unique($linkphoto); 

foreach ($unlink as $link) { 
    echo $link, "<br />"; 
} 

Noch zeigt es Duplikate! Irgendwelche Vorschläge über was falsch ist?

+0

Wir brauchen viel mehr Kontext; vor allem die Struktur von $ linkphoto –

+0

Haben Sie ein Beispiel? – Gumbo

+0

löste das Problem, indem ein neues Array von der angezeigten Seite erstellt wurde. Es scheint, dass das aktuelle Array ein wenig crapy ist !! –

Antwort

2

Nach dem documentation ist die Bedingung für die Gleichstellung wie folgt:

Hinweis: Zwei Elemente werden als gleich betrachtet, wenn und nur wenn (string) $ elem1 === (string) elem2 $. In Worten: wenn die Zeichenfolgendarstellung gleich ist. Das erste Element wird verwendet.

Welche Art von Daten verwenden Sie? Wenn zwei Elemente nicht gleich sind, bleiben sie beide im Array.

+0

was soll ich sagen ich verstehe nicht viel PHP mein Array ist das gleiche wie so etwas array [1] = string array [2] = string ich möchte die duplikate löschen, wenn gefunden –

1

Wir brauchen mehr Kontext, um Ihnen zu helfen, wie der Inhalt von $linkphoto vor array_unique ist es angewendet wird. Zum Beispiel:

<?php 
$array = Array('A','B','C','D','B'); 
print_r($array); // Array ([0] => A [1] => B [2] => C [3] => D [4] => B) 
$result = array_unique($array); 
print_r($result); // Array ([0] => A [1] => B [2] => C [3] => D) 
?> 

Wie @nobody_ erwähnt, wird es nur Duplikate beseitigen, wenn ihre String-Darstellungen gleich sind.

+0

normalerweise sollte es enthalten Elemente wie das obige Array, aber es verhält sich derzeit nicht wie ein Array. Wie auch immer, ich fand eine Lösung, indem ich ein neues Array erstellte und es mit $ linkphoto füllte –

Verwandte Themen