Mailinglisten-Archive |
Hallo Markus, "Tacker, Markus" wrote: > Ich habe mal eine Rechte-Vergabe mit folgender Methode gesehen (aber nicht > verstanden *g*): > > 1 = group a > 2 = group b > 4 = group c > 8 = group d > 16 > 128 > 256 > > Ein User in den Gruppen a,b und d hätte dann 1 + 2 + 8 = 11 > > Mein Frage ist jetzt: Hat jemand sowas schon gebaut, und wie werte ich das > Ergebnis aus? das kann man so machen: ============================================================== define("GROUP_A", 1<<1); define("GROUP_B", 1<<2); define("GROUP_C", 1<<3); define("GROUP_D", 1<<4); define("GROUP_E", 1<<5); $records = array( array( "ID" => 1, "NAME" => "Sven", "GROUPS" => GROUP_A | GROUP_C ), array( "ID" => 2, "NAME" => "Jörn", "GROUPS" => GROUP_B | GROUP_C | GROUP_D ) ); reset($records); while (list(,$record) = each($records)) { if ($record[ "GROUPS" ] & GROUP_B) echo $record[ "NAME" ] . " ist in GROUP_B\n"; else echo $record[ "NAME" ] . " ist nicht in GROUP_B\n"; if ($record[ "GROUPS" ] & GROUP_C) echo $record[ "NAME" ] . " ist in GROUP_C\n"; else echo $record[ "NAME" ] . " ist nicht in GROUP_C\n"; } ============================================================== Schau mal ins PHP-Manual unter "Bit-Operatoren", da müßte alles Nötige drin stehen: http://www.php3.de/manual/de/language.operators.bitwise.php Gruß, Tim -- ------------------------------------------------------- Tim Strehle Development Digital Collections Phone: +49 40 235 35 0 Hammerbrookstr. 93 Fax: +49 40 235 35 180 20097 Hamburg / Germany http://www.digicol.com -------------------------------------------------------
php::bar PHP Wiki - Listenarchive