phpbar.de logo

Mailinglisten-Archive

[php] Array durchlaufen lassen bis...

[php] Array durchlaufen lassen bis...

Yannik Hampe yannik at cipher-code.de
Mon Feb 19 20:53:55 CET 2007



Michael Borchers wrote:
> Ich habe ein Array an erforderlichen Benutzergruppen
> $groups = Array(1, 3, 4, 6) ...
> 
> Eine Funktion checkGroup($user, $group) überprüft in der Datenbank, ob der 
> aktuelle Benutzer $user einer der erforderlichen Gruppe $group zugewiesen 
> wurde.
> 
> Ein Benutzer kann mehreren Gruppen zugewiesen werden.
> 
> Einfachste Lösung:
> Einmal jeden Eintrag aus $groups Array mit der checkGroup Funktion 
> durchlaufen lassen -
> 
> foreach($groups as $group)
> {
>     $check = checkGroup($user, $group)
> }
> 
> if($check >= 1) gibt dann true zurück, also ist der Benutzer in mind. einer 
> der erforderlichen Gruppen eingetragen.
> 
> 
> Gibt es auch ne Mögl. die Schleife nur solange durchlaufen zu lassen, bis 
> sie das erste Mal "true" zurückliefert?!
> 
> So in der Art while($check != true) ... ?! 

 foreach($groups as $group)
 {
     if (($check = checkGroup($user, $group)) ===true) break;
 }

Allerdings wäre es besser du schreibst dein checkGroup um, damit es bei
der DB-Afrage direkt mit ORs auf alle Gruppen in der DB aufmal prüft,
damit du mit nur einem Query an die DB auskommst.
> 


Yannik

php::bar PHP Wiki   -   Listenarchive