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