Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]tablica 2-wymiarowa, dostęp
peter13135
post
Post #1





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


mam ja taką fajową tablice która pod print_r wygląda tak
Array (
[88] => Array ( [login] => user [rank] => 2 )
[89] => Array ( [login] => pizdryk [rank] => 1 )
[90] => Array ( [login] => admin [rank] => 9 )
)

(dlatego jest od 88, bo użyszkodnicy od 1 do 87, byli wyakasowani, ponieważ tabela była modyfikowana killkanaśnie razy)

ta tablica jest tworzona poprzez funkcje

no ale mniejsza z tym
moj problem polega na tym, że niewiem jak wybrać z tej tablicy, login usera, o największym id
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 21)
pyro
post
Post #2





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $naj = $tablica[max($tablica)];
  3. ?>


Ten post edytował pyro 21.09.2008, 13:03:43
Go to the top of the page
+Quote Post
Shili
post
Post #3





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


Pobierasz to z bazy, czy masz po prostu w tablicy?

Podejrzewam, że to pierwsze, więc możesz zrobić to na poziomie zapytania.
Potrzebne tylko limit 1 i order by id desc. No chyba, że już na tym etapie potrzebne Ci są wszystkie rekordy.

Ten post edytował Shili 21.09.2008, 12:35:11
Go to the top of the page
+Quote Post
peter13135
post
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


tablice tworze, pobierając z bazy,
chodzi oto że tych w wielu miejscach wyświetlam, dlatego niechce za każdym razem robić zapytanie, tylko raz zrobiłem tablice, do której sie potem odwołuje
Go to the top of the page
+Quote Post
peter13135
post
Post #5





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


count zwraca liczbe 'pól' w tablicy, a mi chodzi o ostatni klucz, czyli, jak z niej wydobyć to 90
Go to the top of the page
+Quote Post
peter13135
post
Post #6





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


powyższy kod zwraca mi 3 a nie 90...
Go to the top of the page
+Quote Post
antyqjon
post
Post #7





Grupa: Zarejestrowani
Postów: 77
Pomógł: 27
Dołączył: 24.03.2002
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


pyro, niespecjalnie, bo tablica ma 3 elementy, a identyfikatory są rzędu 90.

  1. <?php
  2. $max_elem = $tab[max(array_keys($tab))];
  3. ?>


Ten post edytował antyqjon 21.09.2008, 13:01:43
Go to the top of the page
+Quote Post
pyro
post
Post #8





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


mówiąc powyzszy mialem na mysli ten z max() ;p
Go to the top of the page
+Quote Post
peter13135
post
Post #9





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


ale to jest tablica wielowymiarowa, i to max, mi zwraca tylko Array
może mi ktoś dać "gotowca"?? niebardzo wiem jak to zrobić...
Go to the top of the page
+Quote Post
pyro
post
Post #10





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


zwraca tablice, gdzie jest wlasnie ten login (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
peter13135
post
Post #11





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


taki kod
  1. <?php
  2. $a=max($users_list);
  3. echo $a[login];
  4. ?>

wyswietla mi user, czyli login o id 88 a nie 90

edit:// to chyba powinno być end a nie max ;]

Ten post edytował peter13135 21.09.2008, 13:18:10
Go to the top of the page
+Quote Post
pyro
post
Post #12





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $a=max($users_list);
  3. echo $users_list[$a][login];
  4. ?>


Ten post edytował pyro 21.09.2008, 13:19:53
Go to the top of the page
+Quote Post
phpion
post
Post #13





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@peter13135:
~antyqjon podał Ci poprawne rozwiązanie, które zapewne będzie działać.

@pyro:
Sprawdzasz w ogóle to co piszesz? Bo mam wrażenie, że piszesz o czymś o czym nie masz za bardzo pojęcia...
Go to the top of the page
+Quote Post
pyro
post
Post #14





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Cytat(phpion @ 21.09.2008, 14:20:33 ) *
@pyro:
Sprawdzasz w ogóle to co piszesz? Bo mam wrażenie, że piszesz o czymś o czym nie masz za bardzo pojęcia...


phpion, nie sprawdzam
Go to the top of the page
+Quote Post
phpion
post
Post #15





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




No właśnie. To może nie pisz głupot?
Go to the top of the page
+Quote Post
pyro
post
Post #16





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


phpion, gdzie widzisz glupoty? chetnie poprawie
Go to the top of the page
+Quote Post
peter13135
post
Post #17





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


co do antyqjona, to nawet niewiem co gdzie jak podstawić
Go to the top of the page
+Quote Post
pyro
post
Post #18





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


phpion, skoro nie widzisz, to Ty nie pisz glupot (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

peter, co ci zwraca ponizszy kod?

  1. <?php
  2. $a=max($users_list);
  3. echo $users_list[$a][login];
  4. ?>
Go to the top of the page
+Quote Post
peter13135
post
Post #19





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


takie coś

Warning: Illegal offset type in c:\usr\krasnal\www\pportal\stats.php on line 17
Go to the top of the page
+Quote Post
phpion
post
Post #20





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(pyro @ 21.09.2008, 14:23:57 ) *
phpion, gdzie widzisz glupoty? chetnie poprawie

Odpal sobie łaskawie ten kod:
  1. <?php
  2. ini_set('display_errors', 'On');
  3.  
  4. $users_list = array(
  5.    97 => array('login' => 'login97'),
  6.    98 => array('login' => 'login98'),
  7.    99 => array('login' => 'login99')
  8. );
  9.  
  10. $a=max($users_list);
  11. echo $users_list[$a][login];
  12. ?>


@autor_tematu:
  1. <?php
  2. $users_list = array(
  3.    97 => array('login' => 'login97'),
  4.    98 => array('login' => 'login98'),
  5.    99 => array('login' => 'login99')
  6. );
  7.  
  8. $max_elem = $users_list[max(array_keys($users_list))];
  9. echo $max_elem['login'];
  10. ?>


Ten post edytował phpion 21.09.2008, 13:48:59
Go to the top of the page
+Quote Post
antyqjon
post
Post #21





Grupa: Zarejestrowani
Postów: 77
Pomógł: 27
Dołączył: 24.03.2002
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


Cytat(peter13135 @ 21.09.2008, 14:30:17 ) *
co do antyqjona, to nawet niewiem co gdzie jak podstawić


$tab - Twoja tablica, $max_elem - zmienna, która zawiera element tablicy (cokolwiek, może być nim przecież zagnieżdżona tablica - i w Twoim wypadku tak będzie) odpowiadający maksymalnej wartości klucza, poczytaj o array_keys" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
tiraeth
post
Post #22





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. $a = array(
  4.  88 => array('login' => 'user', 'rank' => 2),
  5.  89 => array('login' => 'pizdryk', 'rank' => 1),
  6.  90 => array('login' => 'admin', 'rank' => 9)
  7. );
  8.  
  9. // Metoda z sortowaniem
  10. krsort($a);
  11. $a_s = array(key($a) => current($a));
  12.  
  13. // Metoda z funkcją max()
  14. $max = max(array_keys($a));
  15. $a_m = array($max => $a[$max]);
  16.  
  17. echo '<pre>';
  18. print_r($a_s);
  19. echo '</pre>';
  20.  
  21. echo '<pre>';
  22. print_r($a_m);
  23. echo '</pre>';
  24. ?>


Proszę Was, czasem odpalcie to, co piszecie na localu, spójrzcie do manuala i sprawdźcie jak to powinno wyglądać... Dwie strony niepotrzebnych postów. Wystarczyło wskazać jakie funkcje użyć i gitara by była.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 17.10.2025 - 02:27