Mysql
 sql >> Database >  >> RDS >> Mysql

Confronto di due array con nomi di chiavi diversi

Assegna un alias a uno o entrambi i campi in modo che corrispondano in termini di chiavi:

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

Ora c'è una chiave di module anziché modname .

Puoi usare array_diff per trovare la differenza tra gli array purché abbiano una struttura simile. Nel tuo caso questo significherebbe rimuovere le altre due chiavi dalla tua seconda query DB.

Ad esempio:

$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);

Documentazione per array_diff di PHP :http://php.net/manual/en/function.array- diff.php

Nota che ci sono molti modi per farlo. Questo è solo uno.