Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Liczenie tablicy wielowymiarowej
adam882
post 30.12.2011, 09:42:07
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
piotrooo89
post 30.12.2011, 10:17:27
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 30.12.2011, 10:43:53
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 smile.gif Zobacz do manuala zanim napiszesz, bo działa to specyficznie 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 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 smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

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: 12.06.2024 - 13:36