php konvertieren stdClass object to array
Könnte jemand Einblick geben, warum bekomme ich diese zu arbeiten.
Ich möchte die Abfrage eine array zu sehen, ob die USER->id
dass der derzeit angemeldet ist ist die Zuordnung einer bestimmten Rolle:
$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 Moment immer diese Ausgabe:
Sie haben keine Berechtigung zum Zugang dieser Datenbank.
5410
Array ( [7] => stdClass Object ( [userid] => 7 ) [9] => stdClass Object ( [userid] => 9 ) [27] => stdClass Object ( [userid] => 27 ) [98] => stdClass Object ( [userid] => 98 ) [203] => stdClass Object ( [userid] => 203 ) [252] => stdClass Object ( [userid] => 252 ) [5410] => stdClass Object ( [userid] => 5410 ) )
Wie Sie sehen können 5410 ist in dem array, so sollten Sie nicht get zugegriffen verweigert.
Vielen Dank im Voraus für jede Hilfe.
- wo ist diese variable/Objekt
$USER, $CFG
kommen? Und was ist falsch mit dem Objekt, das MÜSSEN Sie Sie konvertieren, um array? - Ihre
object2array()
Funktion ist redundant. Gießen Sie ein Objekt zu(array)
hat den gleichen Effekt. - Sie sagen nicht, was die
get_records_sql()
tut. Vielleicht kannst du es ändern, so dass es ein array zurückgibt? Was ist$USER->id
? Und zusätzlich ich bin mir nicht sicher, ob Sie tun können, eineforeach
auf ein Objekt. Auch "5410" ist nicht im array sondern einen anderenstdObject
hält, die die userid "5410". Das ist ein Unterschied.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil
5410 != stdClass Object ( [userid] => 5410 )
wenn Siein_array()
.Da Sie die array-Schlüssel sieht aus wie dieselbe mit
userid
verwenden Sie einfachisset($alloweduser[$USER->id])
statt.isset()
verwendenarray_key_exists($USER->id,$alloweduser);