किसी एक या दोनों फ़ील्ड को एक उपनाम दें ताकि वे कुंजी के अनुसार मेल खा सकें:
$sql1 = "SELECT modname AS module FROM users_modules WHERE email='$email'";
अब module
. की एक कुंजी है के बजाय modname
।
आप array_diff
का उपयोग कर सकते हैं सरणियों के बीच अंतर खोजने के लिए जब तक कि उनकी समान संरचना हो। आपके मामले में यह आपकी दूसरी डीबी क्वेरी से अन्य दो कुंजियों को हटा देगा।
उदाहरण के लिए:
$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
ध्यान दें कि ऐसा करने के कई तरीके हैं। यह सिर्फ एक है।