Heim  >  Artikel  >  Backend-Entwicklung  >  So fragen Sie ein Array in PHP nach doppelten Werten ab

So fragen Sie ein Array in PHP nach doppelten Werten ab

PHPz
PHPzOriginal
2023-04-27 16:38:281360Durchsuche

Wenn wir in PHP einige Elemente in einer Liste speichern müssen, ist die Verwendung eines Arrays die natürlichste Idee. Arrays können problemlos eine große Anzahl von Elementen speichern und eine Reihe leistungsstarker Operationen unterstützen. Wenn unser Array jedoch doppelte Elemente enthält, müssen wir möglicherweise einige zusätzliche Operationen ausführen, um diese doppelten Werte zu finden. In diesem Artikel wird erläutert, wie Sie in PHP ein Array nach doppelten Werten abfragen.

1. Verwenden Sie die Funktion array_count_values ​​​​

Die Funktion array_count_values ​​​​von PHP kann das Vorkommen jedes Werts im Array zählen und ein neues Array zurückgeben, wobei der Schlüssel der Wert im ursprünglichen Array und der Wert das Vorkommen von ist der Wert in der ursprünglichen Array-Frequenz. Daher können wir diese Funktion verwenden, um doppelte Werte zu finden. Hier ist ein einfaches Beispiel:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$counts = array_count_values($numbers);
$repeats = array();
foreach ($counts as $value => $count) {
    if ($count > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);

Ausgabe:

Array
(
    [0] => 1
    [1] => 2
)

Im obigen Beispiel definieren wir zunächst ein Array $numbers, das doppelte Werte enthält. Anschließend haben wir die Funktion array_count_values ​​aufgerufen, um die Anzahl der Vorkommen jedes Werts zu zählen. Die Ausgabe ist ein Array mit zwei Schlüssel-Wert-Paaren, wobei der Schlüssel der Wert und der Wert die Häufigkeit angibt, mit der dieser Wert auftritt.

Wir verwenden dann eine foreach-Schleife, um das Array zu durchlaufen und zu prüfen, ob die Anzahl der Vorkommen jedes Werts größer als 1 ist. Wenn dies der Fall ist, wird der Wert zu einem anderen Array $repeats hinzugefügt. Schließlich drucken wir das Array $repeats mit der Funktion print_r auf dem Bildschirm aus, um die wiederholten Werte anzuzeigen.

2. Verwenden Sie die Funktion array_unique und die Zählfunktion.

Eine andere Möglichkeit, doppelte Werte in einem Array zu finden, ist die Verwendung der Funktion array_unique und der Zählfunktion. Die Funktion array_unique gibt ein dedupliziertes Array zurück, während die Zählfunktion zählt, wie oft jeder Wert im Array erscheint. Daher können wir diese beiden Funktionen verwenden, um doppelte Werte zu finden. Hier ist ein Beispiel:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$unique = array_unique($numbers);
$counts = array_count_values($numbers);
$repeats = array();
foreach ($unique as $value) {
    if ($counts[$value] > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);

Die Ausgabe ist die gleiche wie im vorherigen Beispiel:

Array
(
    [0] => 1
    [1] => 2
)

Im obigen Beispiel verwenden wir zunächst die Funktion array_unique, um doppelte Werte aus dem Array $numbers zu entfernen und ein neues Array zu erhalten, das dies tut enthalten keine doppelten Werte $unique. Anschließend verwenden wir die Funktion array_count_values, um die Anzahl der Vorkommen jedes Werts im ursprünglichen Array zu zählen.

Als nächstes verwenden wir eine foreach-Schleife, um das $unique-Array zu durchlaufen, und verwenden eine Zählfunktion, um zu prüfen, ob die Häufigkeit, mit der der Wert im ursprünglichen Array erscheint, größer als 1 ist. Wenn dies der Fall ist, wird der Wert zu einem neuen Array $repeats hinzugefügt und schließlich wird das Array $repeats auf dem Bildschirm ausgegeben, um die wiederholten Werte anzuzeigen.

3. Verwenden Sie die Funktion array_keys.

Eine andere Möglichkeit, doppelte Werte in einem Array zu finden, ist die Verwendung der Funktion array_keys. Diese Funktion gibt ein Array zurück, das alle Schlüssel mit dem angegebenen Wert enthält. Wenn wir diese Funktion verwenden, um doppelte Werte zu finden, ist die Länge des resultierenden Arrays daher die Anzahl der doppelten Werte. Hier ist ein Beispiel:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$repeats = array();
foreach (array_unique($numbers) as $value) {
    $keys = array_keys($numbers, $value);
    if (count($keys) > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);

Die Ausgabe ist auch dieselbe:

Array
(
    [0] => 1
    [1] => 2
)

Im obigen Beispiel verwenden wir zunächst die Funktion array_unique, um doppelte Werte aus dem Array $numbers zu entfernen und ein neues Array zu erhalten, das keine Duplikate enthält Werte. Anschließend verwenden wir eine foreach-Schleife, um das Array zu durchlaufen, und verwenden die Funktion array_keys, um alle Schlüssel im ursprünglichen Array zu finden, die diesen Wert enthalten. Wenn die Anzahl der gefundenen Schlüssel größer als 1 ist, wird der Wert einem neuen Array $repeats hinzugefügt. Schließlich drucken wir das Array $repeats auf dem Bildschirm aus, um die wiederholten Werte anzuzeigen.

Zusammenfassung

Die oben genannten sind drei Möglichkeiten, doppelte Werte in PHP-Arrays abzufragen. Die Leistung jeder Methode unterscheidet sich geringfügig, aber alle Methoden sind effektiv bei der Suche nach doppelten Werten. Durch das Erlernen dieser Methoden beherrschen Sie die Fähigkeiten der Array-Manipulation in PHP besser und können in Ihren Projekten einfacher mit wiederholten Elementen in Arrays umgehen.

Das obige ist der detaillierte Inhalt vonSo fragen Sie ein Array in PHP nach doppelten Werten ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn