Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Grupy użytkowników. Porównywanie zmiennych int z kilku tabel
Forum PHP.pl > Forum > PHP
starach
Funkcja rejestrująca grupy użytkownika na razie pobiera mi coś takiego, jak poniżej.
Co mam zrobić żeby porównać pola z wartości z tabeli group_privileges i otrzymać największą wartość z pola . Użytkownik może należeć do kilku grup każda grupa ma swój poziom uprawnień. Chodzi o to żeby wydostać z każdego pola uprawnień najwyższy poziom dostępu.
W tym wypadku dla poniższego zestawienia kod dostępu byłby taki: 346763776526157
Jak to zrobić ?
Kod
Array
(
    [0] => Array
        (
            [group_name] => Administratorzy
            [group_privileges] => Array
                (
                    [0] => 3
                    [1] => 4
                    [2] => 6
                    [3] => 7
                    [4] => 1
                    [5] => 3
                    [6] => 7
                    [7] => 2
                    [8] => 6
                    [9] => 5
                    [10] => 2
                    [11] => 6
                    [12] => 1
                    [13] => 5
                    [14] => 7
                )

        )

    [1] => Array
        (
            [group_name] => U?ytkownicy
            [group_privileges] => Array
                (
                    [0] => 3
                    [1] => 2
                    [2] => 5
                    [3] => 7
                    [4] => 6
                    [5] => 2
                    [6] => 5
                    [7] => 7
                    [8] => 1
                    [9] => 1
                    [10] => 5
                    [11] => 7
                    [12] => 1
                    [13] => 5
                    [14] => 3
                )

        )

)
em1X
  1. <?php
  2.  
  3. $tab = array();
  4. $tab[] = array("group_name"=>"administratorzy", "group_privileges" => array(
  5. 3,4,6,7,1,3,7,2,6,5,2,6,1,5,7));
  6. $tab[] = array("group_name"=>"uzytkownicy", "group_privileges" => array(
  7. 3,2,5,7,6,2,5,7,1,1,5,7,1,5,3));
  8.  
  9. function check(& $tab)
  10. {
  11. $return = "";
  12. $select = array();
  13.  
  14. for ($i=0; $i<count($tab[0]["group_privileges"]); $i++)
  15. {
  16. for ($j=0; $j<count($tab); $j++)
  17. {
  18. $select[] = $tab[$j]["group_privileges"][$i];
  19. }
  20.  
  21. $return .= max($select);
  22. $select = array();
  23. }
  24.  
  25. return $return;
  26. }
  27.  
  28. print "<pre>";
  29. print_r($tab);
  30. print "nn";
  31. print "Wynik: " . check($tab);
  32.  
  33. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.