Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzenie czy user jest online z tablicy, poprzez porownanie z inna tablica
konradmm
post 5.05.2015, 11:57:23
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 18.12.2007

Ostrzeżenie: (10%)
X----


Witam ponownie!

Problem dosc specyficzny...

Posiadam arrayka $online, ktory listuje wszystkich uzytkownikow online w tablicy o wygladzie:

Kod
array(30) {
      ["id_klienta"]=>
      int(104)
      ["poziom"]=>
      int(58)
      ["id_klienta_w_bazie"]=>
      int(307)
      ["nick"]=>
      object(XXX)#6034 (2) {
        ["string":protected]=>
        string(5) "se7en"
        ["position":protected]=>
        int(0)
      }
      ["admin"]=>
      int(1)
      ["afk"]=>


oraz mam rowniez sprawdzenie KTO jest adminem, ktore to zapytanie zwraca tablice tego typu:

Kod
array(2) {
  [307]=>
  array(3) {
    ["id_klienta_w_bazie"]=>
    int(307)
    ["nick"]=>
    object(XXX)#6355 (2) {
      ["string":protected]=>
      string(5) "se7en"
      ["position":protected]=>
      int(0)
    }
    ["secretkey"]=>
    object(XXX)#6356 (2) {
      ["string":protected]=>
      string(28) "1234567890987654321"
      ["position":protected]=>
      int(0)
    }
  }
  [7771]=>
  array(3) {
    ["id_klienta_w_bazie"]=>
    int(7771)
    ["nick"]=>
    object(XXX)#6439 (2) {
      ["string":protected]=>
      string(13) "RoLL1n 罗林"
      ["position":protected]=>
      int(0)
    }
    ["secretkey"]=>
    object(XXX)#6440 (2) {
      ["string":protected]=>
      string(28) "098745632123456789"
      ["position":protected]=>
      int(0)
    }


I moje pytanie brzmi jak moge sprawdzic KTO z adminow jest aktualnie online?
Co mam tak naprawde porownac?

Czy moge uzyc czegos w stylu?:
Kod
$online = $gra->ListaOnline();
foreach($gra->Admins() as $admin_member) {
//do tego etapu dziala wszystko
    if (isset($online[$admin_member['id_klienta']]))


Sczerze, nie wiem jak to zrobic i nie mam juz sil biggrin.gif
Prosze o pomoc wink.gif


Poniekąd rozwiązałem swój problem, ale ostatnio ktos mnie glupio nauczyl, ze mam sprawdzac jak szybko kod działa itp...

  1. $online = $gra->ListaOnline();
  2. foreach($gra->Admins() as $admin_member) {
  3. foreach($online as $xonline){
  4. $znalazlem = false;
  5.  
  6. if($xonline['id_klienta_w_bazie'] == $admin_member['id_klienta_w_bazie']){
  7. $znalazlem = true;
  8. break;
  9. }
  10. else
  11. $znalazlem = false;
  12. }
  13. if($znalazlem)
  14. echo $admin_member['nick']."-Online\n";
  15. else
  16. echo $admin_member['nick']."-Offline\n";
  17. }


Pytanie teraz, jak bardzo nieefektywne jest to pakowac w 2 petle?
I jak to inaczej rozwiazac?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 15:19