Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]tablica 2-wymiarowa, dostęp
Forum PHP.pl > Forum > Przedszkole
peter13135
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
pyro
  1. <?php
  2. $naj = $tablica[max($tablica)];
  3. ?>
Shili
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.
peter13135
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
peter13135
count zwraca liczbe 'pól' w tablicy, a mi chodzi o ostatni klucz, czyli, jak z niej wydobyć to 90
peter13135
powyższy kod zwraca mi 3 a nie 90...
antyqjon
pyro, niespecjalnie, bo tablica ma 3 elementy, a identyfikatory są rzędu 90.

  1. <?php
  2. $max_elem = $tab[max(array_keys($tab))];
  3. ?>
pyro
mówiąc powyzszy mialem na mysli ten z max() ;p
peter13135
ale to jest tablica wielowymiarowa, i to max, mi zwraca tylko Array
może mi ktoś dać "gotowca"?? niebardzo wiem jak to zrobić...
pyro
zwraca tablice, gdzie jest wlasnie ten login dry.gif
peter13135
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 ;]
pyro
  1. <?php
  2. $a=max($users_list);
  3. echo $users_list[$a][login];
  4. ?>
phpion
@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...
pyro
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
phpion
No właśnie. To może nie pisz głupot?
pyro
phpion, gdzie widzisz glupoty? chetnie poprawie
peter13135
co do antyqjona, to nawet niewiem co gdzie jak podstawić
pyro
phpion, skoro nie widzisz, to Ty nie pisz glupot smile.gif

peter, co ci zwraca ponizszy kod?

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

Warning: Illegal offset type in c:\usr\krasnal\www\pportal\stats.php on line 17
phpion
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. ?>
antyqjon
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.
tiraeth
  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.
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.