Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z funkcją count(), błąd w zliczaniu ilości elementów w tablicy
sticker
post 13.09.2006, 10:42:10
Post #1





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


Witam wszystkich, wlasnie jestem w trakcie pisania skryptu przetwarzającego XML'a i potrzebuje zliczać ilość elementów w tablicy asocjacyjnej wielowymiarowej. Do zliczanie elementów w tablicy wykorzystuje funkcję
  1. <?php
  2. ?>

Funkcja owszem działa ale nie w sposób całkiem dla mnie nieprzwidywalnym. Postram sie to przybliżyć na przykładzie:
oto kawalek tablicy w której następuje zliczanie:
  1. <pre>
  2. [AUTHORS] => Array
  3. (
  4. [AUTHOR] => Array
  5. (
  6. [0] => Array
  7. (
  8. [FIRSTNAME] =>
  9. [LASTNAME] => Britnej Spirs
  10. )
  11. [1] => Array
  12. (
  13. [FIRSTNAME] =>
  14. [LASTNAME] => Mała donna
  15. )
  16. )
  17. )
  18. </pre>

potrzebuje policzyć ilość wystąpień AUTHOR robie to w ten sposób:
  1. <?php
  2. count( $result['AUTHORS']['AUTHOR'] )
  3. ?>
i otrzymuje wynik równy 2 (czyli wszystko ok)
i kolejne podejście natrafiam na taką tablice:
  1. <pre>
  2. [AUTHORS] => Array
  3. (
  4. [AUTHOR] => Array
  5. (
  6. [FIRSTNAME] =>
  7. [LASTNAME] => Britnej Spirs
  8. )
  9. )
  10. </pre>

robie:
  1. <?php
  2. count( $result['AUTHORS']['AUTHOR'] )
  3. ?>

i dostaje wynik równy 2.
Pytanie jest dlaczego tak sie dzieje ?
Oczywiście można to obejśc porównując liczbę
  1. <?php
  2. count( $result['AUTHORS']['AUTHOR'] ) == count( $result['AUTHORS']['AUTHOR'], COUNT_RECURSIVE )
  3. ?>
i na tej podstawie wnioskować czy coś wynik funkcji zwraca ilość elementów w danej tablicy czy liczbę elementów w zawartych w podtablicy. Ale wolałbym znaleźć jakieś prostsze rozwiązanie i zrozumieć dlaczego tak sie dzieje.

Dzięki z góry za odpowiedź


--------------------
Go to the top of the page
+Quote Post
kszychu
post 13.09.2006, 10:46:44
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


W obu przypadkach tablia AUTHOR ma dwa elementy: w pierwszym są to 0 i 1, w drugima zaś FIRSTNAME i LASTNAME. Nie ma tu nic dziwnego


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
sticker
post 13.09.2006, 10:53:02
Post #3





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


Fakt doszedłem głupie pytanie, ale sytuacji mnie troszke zdziwiła smile.gif Dzięki

Ten post edytował sticker 13.09.2006, 10:55:08


--------------------
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: 19.07.2025 - 09:55