Geef een van of beide velden een alias zodat ze qua sleutel overeenkomen:
$sql1 = "SELECT modname AS module FROM users_modules WHERE email='$email'";
Nu is er een sleutel van module
in plaats van modname
.
U kunt array_diff
. gebruiken om het verschil tussen arrays te vinden, zolang ze een vergelijkbare structuur hebben. In uw geval zou dit het verwijderen van de andere twee sleutels uit uw tweede DB-query zijn.
Bijvoorbeeld:
$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);
Documentatie voor PHP's array_diff
:http://php.net/manual/en/function.array- diff.php
Merk op dat er veel manieren zijn om dit te doen. Dit is er maar één.