downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

current> <compact
[edit] Last updated: Fri, 30 Nov 2012

view this page in

count

(PHP 4, PHP 5)

countZlicza ilość elementów w tablicy lub pól obiektu

Opis

int count ( mixed $zmienna [, int $tryb ] )

Zwraca ilość elementów w parametrze zmienna, która zazwyczaj będzie tablicą, jako że wszystko inne będzie miało jeden element.

Dla obiektów, jeśli zainstalowane zostało rozszerzenie SPL, możliwe jest podłączenie do count() poprzez zaimplementowanie interfejsu Countable. Interfejs ten posiada dokładnie jedną metodę, count(), która zwraca wartość, którą ma zwrócić funkcja count().

Jeśli zmienna nie jest tablicą ani obiektem z zaimplementowanym interfejsem Countable, to zwracana będzie wartość 1. Istnieje jeden wyjątek - jeśli zmienna będzie miała wartość NULL, zwrócona zostanie wartość 0.

Informacja: Opcjonalny argument tryb dostępny jest od wersji PHP 4.2.0.

Jeśli opcjonalny argument tryb ustawiony jest na COUNT_RECURSIVE (lub 1), count() będzie zliczał elementy rekurencyjnie. Jest to przydatne przy zliczaniu ilości wszystkich elementów tablicy wielowymiarowej. Domyślna wartość argumentu tryb to 0. count() nie wykrywa nieskończonej rekurencji.

Uwaga

count() może zwrócić 0 dla zmiennej, która nie została zainicjalizowana, ale możę zwrócić także 0 dla zmiennej która została zainicjalizowana pustą tablicą. Użyj isset() aby sprawdzić czy zmienna została ustawiona.

Więcej informacji na temat sposobu implementacji tablic w PHP można znaleźć w rozdziale Tablice.

Przykład #1 Przykład użycia count()

<?php
$a
[0] = 1;
$a[1] = 3;
$a[2] = 5;
$wynik count ($a);
// $wynik == 3

$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$wynik count ($b);
// $wynik == 3

$wynik count(null);
// $wynik == 0

$wynik count(false);
// $wynik = 1

?>

Przykład #2 Przykład rekurencyjnego przetwarzania przez count() (PHP >= 4.2.0)

<?php
$jedzenie 
= array('owoce' => array('pomarańcza''banan''jabłko'),
                
'warzywa' => array('marchewka''kukurydza''groszek'));

// zliczanie rekurencyjne
echo count($jedzenieCOUNT_RECURSIVE); // wyświetli 8

// normal count
echo count($jedzenie); // wyświetli 2

?>

Patrz także: is_array(), isset() i strlen().



current> <compact
[edit] Last updated: Fri, 30 Nov 2012
 
add a note add a note User Contributed Notes count - [8 notes]
up
1
meathanjay at gmail dot com
1 day ago
<?php
//PHP count function

$arr=array("hasan"=>array("Name"=>"Hasan Al Mamun","Address"=>"Uttara, Dhaka","Profession"=>"Web Developer"),
      
"meathanjay"=>array("Name"=>"Meathanjay","Address"=>"Nawabgonj, Dhaka","Profession"=>"Nothing")
    );
echo
count($arr);
//Output  2

$arr=array("hasan"=>array("Name"=>"Hasan Al Mamun","Address"=>"Uttara, Dhaka","Profession"=>"Web Developer"),
      
"meathanjay"=>array("Name"=>"Meathanjay","Address"=>"Nawabgonj, Dhaka","Profession"=>"Nothing")
    );
echo
count($arr,1);
//Output  8 when second Parameter true
up
8
danny at dannymendel dot com
5 years ago
I actually find the following function more useful when it comes to multidimension arrays when you do not want all levels of the array tree.

// $limit is set to the number of recursions
<?php
function count_recursive ($array, $limit) {
   
$count = 0;
    foreach (
$array as $id => $_array) {
        if (
is_array ($_array) && $limit > 0) {
           
$count += count_recursive ($_array, $limit - 1);
        } else {
           
$count += 1;
        }
    }
    return
$count;
}
?>
up
8
alexandr at vladykin dot pp dot ru
6 years ago
My function returns the number of elements in array for multidimensional arrays subject to depth of array. (Almost COUNT_RECURSIVE, but you can point on which depth you want to plunge).

<?php
 
function getArrCount ($arr, $depth=1) {
      if (!
is_array($arr) || !$depth) return 0;
        
    
$res=count($arr);
        
      foreach (
$arr as $in_ar)
        
$res+=getArrCount($in_ar, $depth-1);
     
      return
$res;
  }
?>
up
3
atoi_monte at hotmail dot com
5 years ago
Please note: While SPL is compiled into PHP by default starting with PHP 5, the Countable interface is not available until 5.1
up
-6
jezdec at email dot cz
4 years ago
Hi there,
there is a simple script with example for counting rows and columns of a two-dimensional array.

<?php
$data
= array(
   
"apples" =>
        array(
"red", "yellow", "pineapples"),
   
"bananas" =>
        array(
"small", "medium", "big"),
   
"vegs" =>
        array(
"potatoes", "carrots", "onions")
);

$rows = count($data,0);
$cols = (count($data,1)/count($data,0))-1;
print
"There are {$rows} rows and {$cols} columns in the table!";
?>
up
-20
freefaler at gmail dot com
8 years ago
If you want to count only elements in the second level of 2D arrays.A close to mind note, useful for multidimentional arrays:

<?php
$food
= array('fruits' => array('orange', 'banana', 'apple'),
            
'veggie' => array('carrot', 'collard','pea'));

// recursive count
echo count($food,COUNT_RECURSIVE);  // output 8

// normal count
echo count($food);                  // output 2

// all the fruits and veggies
echo (count($food,COUNT_RECURSIVE)-count($food,0)); //output 6
?>
up
-23
nicolas dot grekas+php at gmail dot com
1 year ago
As of PHP 5.2.6, count() DOES detect infinite recursion.
It triggers a warning when its argument is a recursive array.
up
-3
vivekanand dot pathak25 at gmail dot com
4 days ago
<php
 function CountArray($arr){
     $i=0;
    foreach($arr as $val){
      $i++;
    }
       return $i;
 }

$arr=array(1,2,3,4,5,6,7,8,9);
echo CountArray($arr);   // output 9
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites