Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z funkcją count()
Forum PHP.pl > Forum > Przedszkole
sticker
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ź
kszychu
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
sticker
Fakt doszedłem głupie pytanie, ale sytuacji mnie troszke zdziwiła smile.gif Dzięki
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.