sql >> Base de Datos >  >> RDS >> Mysql

Comparación de dos matrices con diferentes nombres de clave

Asigne un alias a uno o a ambos campos para que coincidan en términos de clave:

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

Ahora hay una clave de module en lugar de modname .

Puedes usar array_diff para encontrar la diferencia entre matrices siempre que tengan una estructura similar. En su caso, esto sería eliminar las otras dos claves de su segunda consulta de base de datos.

Por ejemplo:

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

Documentación para array_diff de PHP :http://php.net/manual/en/function.array- diferencia.php

Tenga en cuenta que hay muchas maneras de hacer esto. Este es solo uno.