Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Vergleich zweier Arrays mit unterschiedlichen Schlüsselnamen

Geben Sie einem oder beiden Feldern einen Alias, damit sie schlüsselweise übereinstimmen:

$sql1 = "SELECT modname AS module FROM users_modules WHERE email='$email'";

Jetzt gibt es einen Schlüssel von module statt modname .

Sie können array_diff verwenden um den Unterschied zwischen Arrays zu finden, solange sie eine ähnliche Struktur haben. In Ihrem Fall würde dies das Entfernen der anderen beiden Schlüssel aus Ihrer zweiten DB-Abfrage sein.

Zum Beispiel:

$sql1 = "SELECT modname AS module FROM users_modules WHERE email='$email'";
$result1 = $conn->query($sql1);
while ($row = $result1->fetch_assoc()){
   $indMods[] = $row;
}

$sql2 = "SELECT module FROM modules WHERE level = '$level'";
$result2 = $conn->query($sql2);
while ($row2 = $result2 -> fetch_assoc()){
   $allMods[] = $row2;
}

$difference = array_diff($indMods, $allMods);

Dokumentation für array_diff von PHP :http://php.net/manual/en/function.array- diff.php

Beachten Sie, dass es viele Möglichkeiten gibt, dies zu tun. Dies ist nur einer.