Mailinglisten-Archive |
Hi Sebastian, Sebastian Burg schrieb: > ich hab das problem, ich habe ein array, nun will ich testen ob in diesem > array nicht ein wert doppelt oder gar noch öfter vorkommt. Array_unique > nützt mir nix, weil das würde ja nur bereinigen, ich muss nur testen. > Hat jemand ne idee? Oder gar eine funktion die ich in der docu übersehen > hab? drei Wege sind mir gerade dazu eingefallen: 1. Du durchlaeufst den Array, nimmt jeden Wert und durchlaeufst in einer Unterschleife den Array erneut und gleichst alle anderen Werte mit dem Wert ab: for ($i=0; $i<count($deinArray); $i++) { for ($k=0; $k<count($deinArray); $k++) { if ($k != $i && $deinArray[$k] == $deinArray[$i]) { echo('doppelt oder mehrfach: '.$deinArray[$k]); } } } (so in der Art, ungetestet) 2. Du durchlaeufst Den Array und guckst fuer jeden Wert mit array_keys() und count(), wie oft er vorkommt: for ($i=0; $i<count($deinArray); $i++) { $keys = array_keys($deinArray, $deinArray[$i]); if (count($keys()) > 1) { echo('Der Wert '.$deinArray[$i]. kommt '.count($keys()).'x vor!'); } } (ebenfalls so in der Art, ungetestet) 3. Du sortierst den Array einmal nach Werten und durchlaeufst ihn anschliessend. Dabei gleichst Du den aktuellen Wert mit dem davor ab. Sind die beiden identisch, kommt der Wert mehr als einmal vor: sort($deinArray); // Schleife nicht bei 0, sondern erst bei 1 beginnen! for ($i=1; $i<count($deinArray); $i++) { if ($deinArray[$i] == $deinArray[$i-1]) { echo('doppelt oder mehrfach: '.$deinArray[$k]); } } (noch einmal so in der Art, ungetestet) Viele Gruesse Lutz
php::bar PHP Wiki - Listenarchive