php convertir stdClass object à la matrice

Quelqu'un pourrait nous donner un indice quant à pourquoi je peux obtenir ce travail.
Je veux la requête d'un tableau pour voir si le USER->id qui est actuellement connecté est attribué un rôle spécifique:

$contextroles = get_records_sql("SELECT userid FROM {$CFG->prefix}role_assignments WHERE contextid = 23 AND roleid = 3");

function object2array($object) {
    if (is_object($object)) {
        foreach ($object as $key => $value) {
            $array[$key] = $value;
        }
    }
    else {
        $array = $object;
    }
    return $array;
}

$alloweduser = object2array($contextroles);

if (in_array($USER->id, $alloweduser)) {
    echo'Your in<br />';
    echo $USER->id.'<br />';
    print_r($alloweduser);
}
else{
    echo'<br />You do not have permission to acces this database.<br />';
    echo $USER->id.'<br />';
    print_r($alloweduser);
    exit;
}

Im actuellement l'obtention de cette sortie:

Vous n'avez pas la permission d'accéder à cette base de données.

5410

Array ( [7] => stdClass Object ( [id utilisateur] => 7 ) [9] => stdClass Object ( [id utilisateur] => 9 ) [27] => stdClass Object ( [id utilisateur] => 27 ) [98] => stdClass Object ( [id utilisateur] => 98 ) [203] => stdClass Object ( [id utilisateur] => 203 ) [252] => stdClass Object ( [id utilisateur] => 252 ) [5410] => stdClass Object ( [id utilisateur] => 5410 ) )

Comme vous pouvez le voir 5410 est dans le tableau ne devrait donc pas obtenir accessible refusé.
Merci d'avance pour toute aide.

où est cette variable/objet $USER, $CFG venir? Et quel est le problème avec l'objet qui vous DEVEZ la convertir en tableau?
Votre object2array() fonction est redondant. Coulage d'un objet à (array) a le même effet.
Vous n'êtes pas à dire que le get_records_sql(). Peut-être vous pouvez simplement modifier pour qu'elle retourne un tableau? Qu'est-ce que $USER->id? Et en plus je ne suis pas sûr si vous pouvez faire un foreach sur un objet. Aussi, "5410" n'est pas dans le tableau, mais plutôt une autre stdObject qui détient le userid "5410". C'est une différence.

OriginalL'auteur Codded | 2011-09-01