Beispiel:
$arrRights = array(
[0] => array(
'group_id' => 1,
'rights' => 3
)
[1] => array(
'group_id' => 2,
'rights' => 4
)
)
> >
> > Ich suche jetzt eine Funktion mit der ich die Rechte addieren kann.
>
> nein, du willst sie nicht addieren, sondern bitweise überlagern. Das leistet die ODER-Verknüpfung.
Also sowas?
~~~php
$intRights = null;
foreach($arrRights as $strKey=>$arrValue){
$intRights |= $arrValue['rights'];
}
In dieser Richtung musst du die einzelnen Bits isolieren, also mit einer Maske UND-verknüpfen, beispielsweise:
if ($group[$i]['rights'] & 4) // angenommen: 4=read, 2=write, 1=execute
{ "read" permission set, do something
}
Danke dir! Sowas schön kurzes habe ich mir vorgestellt! :)
> Es gibt keine Integer- oder Binärzahlen. Das sind nur unterschiedliche Darstellungen desselben Zahlenwerts. Eine Umwandlung von einem ins andere ist dasselbe wie die Umwandlung von Kartoffeln in Erdäpfel.
Ja, da habe ich mich ungeschickt ausgedrückt. Herzlichen Dank für deine Hilfe!