Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Array_Diff (), um mit Datenbankdaten zu vergleichen, um Ausnahmedatensätze zu finden

Verwenden Sie Array_Diff (), um mit Datenbankdaten zu vergleichen, um Ausnahmedatensätze zu finden

M66 2025-05-17

Array_Diff () ist eine Array -Funktion in PHP, die zwei oder mehr Arrays vergleicht und Werte im ersten Array zurückgibt, die sich nicht in anderen Arrays befinden. Diese Funktion vergleicht das Array, nicht.

Grammatik:

 array_diff(array $array1, array $array2, array ...$arrays): array
  • $ Array1 : Das erste Array (das für den Vergleich verwendete Benchmark -Array).

  • $ Array2, ... $ Arrays : Andere Arrays, mehrere Arrays können als Parameter verglichen werden.

Diese Funktion gibt ein Array zurück, das alle Elemente enthält, die in $ Array1 , jedoch nicht in $ array2 und anderen Arrays, erscheinen.

2. Hintergrund bei der Lösung von Problemen

Angenommen, wir haben eine Datenbank, die die E -Mail -Adresse des Benutzers speichert. Wir hoffen, die hochgeladene Mailboxliste mit den Postfächern in der Datenbank über die Funktion array_diff () zu vergleichen, um schnell die Postfachdatensätze zu finden, die in der Datenbank hochgeladen wurden, dh Ausnahmedatensätze.

1. Datenbankverbindung und Abfrage

Lassen Sie uns zunächst eine Datenbankverbindung herstellen, unter der Annahme, dass die Datenbank als User_DB bezeichnet wird. Es gibt eine Tabellenbenutzer , und es gibt eine Feld -E -Mail , um das Postfach des Benutzers zu speichern.

 <?php
// Datenbankverbindungsinformationen
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "user_db";

// Eine Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);

// Überprüfen Sie die Verbindung
if ($conn->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}

// Fragen Sie alle Postfächer in der Datenbank ab
$sql = "SELECT email FROM users";
$result = $conn->query($sql);

// Speichern Sie die Postfächer in der Datenbank in einem Array
$dbEmails = [];
if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $dbEmails[] = $row['email'];
    }
}
$conn->close();
?>

In diesem Code stellen wir zunächst eine Verbindung zum Datenbank user_db her und erhalten dann alle E -Mail -Adressen aus der Benutzertabelle und speichern sie in das $ dBemail -Array.

4. Erhalten Sie hochgeladene Mailboxdaten

Als nächstes simulieren wir eine hochgeladene Postfachliste, die normalerweise über ein Formular hochgeladen und in einem Array gespeichert wird.

 <?php
// Angenommen, dies sind hochgeladene Mailboxdaten
$uploadedEmails = [
    'user1@example.com',
    'user2@example.com',
    'user3@example.com',
    'user4@example.com'
];
?>

5. Verwenden Sie die Funktion array_diff (), um Ausnahmedatensätze zu finden

Nachdem wir die Mailboxliste $ dBemails in der Datenbank und die hochgeladene Mailboxliste $ uploadedEmails haben, können wir die Funktion von Array_Diff () verwenden, um die Mailbox -Adressen in der Upload -Liste, aber nicht in der Datenbank, zu finden.

 <?php
// Ermitteln Sie die Mailbox in der Upload -Liste, jedoch nicht in der Datenbank
$diffEmails = array_diff($uploadedEmails, $dbEmails);

// Ausnahmeausnahmedatensatz
if (!empty($diffEmails)) {
    echo "Die folgende Mailbox existiert nicht in der Datenbank:<br>";
    foreach ($diffEmails as $email) {
        echo $email . "<br>";
    }
} else {
    echo "Alle hochgeladenen Postfächer sind in der Datenbank vorhanden。";
}
?>

6. Vollständiger Beispielcode

Das komplette PHP -Programm kombiniert den oben genannten Code und lautet wie folgt:

 <?php
// Datenbankverbindungsinformationen
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "user_db";

// Eine Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);

// Überprüfen Sie die Verbindung
if ($conn->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}

// Fragen Sie alle Postfächer in der Datenbank ab
$sql = "SELECT email FROM users";
$result = $conn->query($sql);

// Speichern Sie die Postfächer in der Datenbank in einem Array
$dbEmails = [];
if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $dbEmails[] = $row['email'];
    }
}
$conn->close();

// Angenommen, dies sind hochgeladene Mailboxdaten
$uploadedEmails = [
    'user1@example.com',
    'user2@example.com',
    'user3@example.com',
    'user4@example.com'
];

// Ermitteln Sie die Mailbox in der Upload -Liste, jedoch nicht in der Datenbank
$diffEmails = array_diff($uploadedEmails, $dbEmails);

// Ausnahmeausnahmedatensatz
if (!empty($diffEmails)) {
    echo "Die folgende Mailbox existiert nicht in der Datenbank:<br>";
    foreach ($diffEmails as $email) {
        echo $email . "<br>";
    }
} else {
    echo "Alle hochgeladenen Postfächer sind in der Datenbank vorhanden。";
}
?>