Zählen und Anzeigen von Vorkommen eindeutiger Werte in einem Array
Lesezeit: 2 Minuten
mikey_w
Ich arbeite mit einem eindimensionalen Array in PHP. Ich möchte das Vorhandensein doppelter Werte erkennen, dann die Anzahl der doppelten Werte zählen und die Ergebnisse ausgeben. Zum Beispiel das folgende Array gegeben:
Diese Lösung deckt keine Nicht-Integer- und Nicht-String-Werte ab und erzeugt schließlich Nebeneffekte.
– Codekandis
29. Mai 2018 um 12:18 Uhr
if(count(array_unique($array))<count($array))
{
// Array has duplicates
}
else
{
// Array does not have duplicates
}
“…zählen Sie dann die Anzahl der doppelten Werte und geben Sie die Ergebnisse aus.”
– Showdev
9. März 2018 um 1:31 Uhr
Diese Lösung deckt keine Nicht-Integer- und Nicht-String-Werte ab und erzeugt schließlich Nebeneffekte. Verwenden array_unique($array, SORT_REGULAR) zwingt PHP, Elemente normal zu prüfen, ohne den Typ zu ändern, aber es ist ein loser Vergleich. So werden verschiedene Instanzen einer Klasse mit gleichem Inhalt eindeutig.
Dies ist die einzige Antwort, die nur die doppelten Werte zurückgibt.
– Rotzarf
11. Januar 2019 um 18:45 Uhr
Erweitert, um nur eine Liste doppelter Werte zu geben (was ich brauchte): return array_values(array_unique(array_diff_key($a, array_unique($a))));
– Herbst Leonard
15. Februar 2019 um 19:42 Uhr
Sie könnten versuchen, dieses Array in ein assoziatives Array mit den Früchten als Schlüsseln und der Anzahl der Vorkommen als Werte umzuwandeln. Etwas langatmig, aber es sieht so aus: