Heim > Backend-Entwicklung > PHP-Problem > So fragen Sie doppelte Schlüsselwerte in einem Array in PHP ab

So fragen Sie doppelte Schlüsselwerte in einem Array in PHP ab

PHPz
Freigeben: 2023-04-23 10:51:58
Original
821 Leute haben es durchsucht

In der PHP-Entwicklung besteht häufig die Notwendigkeit, doppelte Schlüsselwerte von Array-Elementen abzufragen. Wenn Sie beispielsweise von Benutzern übermittelte Formulardaten verarbeiten, müssen Sie möglicherweise sicherstellen, dass alle übermittelten Daten eindeutig sind. In diesem Artikel wird erläutert, wie Sie mithilfe der PHP-Sprache doppelte Schlüsselwerte in einem Array abfragen.

Array in PHP ist eine sehr häufig verwendete und sehr leistungsstarke Datenstruktur, die die Korrespondenz zwischen Schlüsseln und Werten speichern kann. Die Schlüssel des Arrays können Ganzzahlen oder Zeichenfolgen sein und die Werte können beliebige Datentypen sein. In PHP können Sie ein Array mit der folgenden Syntax erstellen:

$myArray = array('apple', 'banana', 'cherry');
Nach dem Login kopieren

Der obige Code erstellt ein Array mit drei Elementen, wobei jedes Element eine Zeichenfolge ist. In einem Array verfügt jedes Element über einen entsprechenden numerischen Index, und auf Array-Elemente kann über den Index zugegriffen werden:

echo $myArray[0]; // 输出 'apple'
echo $myArray[1]; // 输出 'banana'
echo $myArray[2]; // 输出 'cherry'
Nach dem Login kopieren

Zusätzlich zu numerischen Indizes können PHP-Arrays auch String-Indizes verwenden. Zum Beispiel:

$myArray = array('name' => '张三', 'age' => 18, 'gender' => '男');
echo $myArray['name']; // 输出 '张三'
echo $myArray['age']; // 输出 18
echo $myArray['gender']; // 输出 '男'
Nach dem Login kopieren

Während des Entwicklungsprozesses müssen wir häufig doppelte Schlüsselwerte in einem Array abfragen, um die Eindeutigkeit der Daten sicherzustellen und Fehler durch Datenduplizierung zu vermeiden. Beispielsweise müssen wir möglicherweise eine Liste von Benutzern abfragen, um festzustellen, ob sie denselben Benutzernamen haben. In PHP können Sie die Funktion array_count_values() verwenden, um die Anzahl des Vorkommens von Array-Elementen abzufragen und die Anzahl der wiederholten Elemente zu zählen. Zum Beispiel:

$users = array('张三', '李四', '王五', '张三', '李四');
$result = array_count_values($users);
print_r($result);
Nach dem Login kopieren

Die Ausgabe lautet wie folgt:

Array (
    [张三] => 2
    [李四] => 2
    [王五] => 1
)
Nach dem Login kopieren

Im obigen Code erstellen wir ein Array $users mit fünf Elementen, das zwei wiederholte Elemente enthält. Durch Aufrufen der Funktion array_count_values() können Sie jedes Element im Array als Schlüssel und die Anzahl der Vorkommen als Wert verwenden, um ein neues Array zu bilden. In der Ausgabe dieses neuen Arrays ist der Schlüssel das Element im ursprünglichen Datenarray und der Wert gibt an, wie oft dieses Element im ursprünglichen Array vorkommt.

Wenn Sie alle wiederholten Elemente im Array abfragen möchten, können Sie die Funktion array_keys() verwenden, um den Schlüssel mit einem Wert von 2 (Vorkommen größer als 1) im Ergebnisarray abzurufen, wie unten gezeigt:

$users = array('张三', '李四', '王五', '张三', '李四');
$result = array_count_values($users);
$repeated = array_keys($result, 2);
print_r($repeated);
Nach dem Login kopieren

The Das Ausgabeergebnis lautet wie folgt:

Array (
    [0] => 张三
    [1] => 李四
)
Nach dem Login kopieren

Im obigen Code verwenden wir die Funktion array_keys(), um den Schlüssel mit dem Wert 2 abzurufen, der der Schlüssel aller doppelten Elemente im Array ist. Jedes Element in der Ausgabe dieses neuen Arrays ist ein doppeltes Element.

In der tatsächlichen Entwicklung müssen wir möglicherweise flexibler im Umgang mit doppelten Elementen sein, z. B. indem wir sie aus dem Array entfernen oder als fehlerhafte Daten markieren. Das Folgende ist ein Beispiel für die Verwendung einer foreach-Schleife, um ein Array zu durchlaufen und doppelte Elemente zu markieren:

$users = array('张三', '李四', '王五', '张三', '李四');
$counts = array();
foreach ($users as $user) {
    if (isset($counts[$user])) {
        $counts[$user]++;
    } else {
        $counts[$user] = 1;
    }
}
foreach ($users as &$user) {
    if ($counts[$user] > 1) {
        $user = $user . '(重复)';
    }
}
print_r($users);
Nach dem Login kopieren

Die Ausgabe lautet wie folgt:

Array (
    [0] => 张三(重复)
    [1] => 李四(重复)
    [2] => 王五
    [3] => 张三(重复)
    [4] => 李四(重复)
)
Nach dem Login kopieren

Im obigen Code definieren wir zunächst ein leeres Array $counts, um die Anzahl jedes Elements aufzuzeichnen Element im ursprünglichen Array Anzahl der Vorkommen. Durchlaufen Sie dann das ursprüngliche Array $users. Wenn ein Element bereits im Array $counts vorhanden ist, addieren Sie 1 zu seiner Vorkommensanzahl, andernfalls setzen Sie seine Vorkommensanzahl auf 1. Schließlich wird das ursprüngliche Array $users erneut durchlaufen, und wenn ein Element häufiger als 1 im Array $counts vorkommt, wird es als doppeltes Element markiert.

Zusätzlich zu den oben genannten Methoden gibt es in PHP viele andere Array-Verarbeitungsfunktionen, auf die Sie verweisen können. Beispielsweise kann die Funktion array_unique() verwendet werden, um doppelte Elemente in einem Array zu entfernen, und die Funktion array_diff() kann verwendet werden, um nicht doppelte Elemente usw. zu finden.

Kurz gesagt ist die Abfrage doppelter Schlüsselwerte in einem Array eine häufige Anforderung in der PHP-Entwicklung. Mithilfe der Funktion array_count_values() können wir schnell die Anzahl der Vorkommen jedes Elements im Array ermitteln, um doppelte Elemente zu verarbeiten.

Das obige ist der detaillierte Inhalt vonSo fragen Sie doppelte Schlüsselwerte in einem Array in PHP ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage