片方または両方のフィールドにエイリアスを付けて、キーごとに一致させます。
$sql1 = "SELECT modname AS module FROM users_modules WHERE email='$email'";
これで、module
のキーがあります modname
ではなく 。
array_diff
を使用できます 配列が類似している限り、配列間の違いを見つけることができます。あなたの場合、これは2番目のDBクエリから他の2つのキーを削除することになります。
例:
$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);
PHPのarray_diff
のドキュメント : http://php.net/manual/en/function.array- diff.php
これを行うには多くの方法があることに注意してください。これは1つだけです。