Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Liczenie tablicy wielowymiarowej
adam882
post
Post #1





Grupa: Zarejestrowani
Postów: 289
Pomógł: 1
Dołączył: 2.11.2007

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


Witam

Mam taką tablicę:

$tablica[elementy1][elementy2];

gdzie na "elementy1" przypada kilka wartości "elementy2".

W jaki sposób mogę zliczyć ile w tej tablicy znajduje się wartości "elementy2" ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




  1. $count = 0;
  2. foreach($tab as $k => $v)
  3. {
  4. $count += count($v);
  5. }
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Albo wersja bardziej "zajechana"...
  1. $count = count( $tablica, 1 ) - count($tablica);

Ale uwaga na to pierwsze wywołanie count, bo jest rekurencyjne (IMG:style_emoticons/default/smile.gif) Zobacz do manuala zanim napiszesz, bo działa to specyficznie (IMG:style_emoticons/default/smile.gif) Jak? Zlicza klucz i sprawdza czy jest to tablica. Jeśli tak, dolicza wszystkie klucze tej tablicy. Tak wiec mając:
  1. $tab = array( 'jeden' => array('jeden-jeden', 'jeden-dwa') );

wyświetli 3, a nie dwa, gdyż dla takiego count masz 3 elementy: 'jeden', 'jeden-jeden', 'jeden-dwa', a nie tylko te dwa ostatnie. Stąd w równaniu odjąłem od wszystkich zliczonych, liczbę kluczy głównych (IMG:style_emoticons/default/smile.gif) Pamiętaj, że to rekurencja i jesli te 'jeden-jeden' też będą tablicami to jego klucze też zostaną zliczone! Jeśli nie jesteś pewien co tam będzie, lepiej użyj tego co podpowiada piotrooo89 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 25.12.2025 - 13:02