Recursive Array Item Count

Discussion in 'PHP' started by pradeep, Feb 1, 2007.

  1. pradeep

    pradeep Team Leader

    Joined:
    Apr 4, 2005
    Messages:
    1,645
    Likes Received:
    87
    Trophy Points:
    0
    Occupation:
    Programmer
    Location:
    Kolkata, India
    Home Page:
    http://blog.pradeep.net.in
    Sometimes we need to find the number of items, located inside an array.Let's take this array as example,
    PHP:
    $a[0]=1;
     
    $a[1][0]=3;
     
    $a[1][1]=4;
     
    $a[3]=5;
    here the total item count is 4, but when you use count() function you get 3. So I wrote a small function which counts array elements, even recursively.

    PHP:
    function get_array_recursive_count(&$a)
     {
         
    $c 0;
         foreach(
    $a as $v)
         {
             if(
    is_array($v))
                 
    $c += get_array_recursive_count($v);
             else
                 
    $c++;
         }
     
         return 
    $c;
     }
    Example:
    PHP:
    $aa = array("a","b");
     
    $bb = array("3","4");
     
    $a = array($aa,$bb,"a");
     
     function 
    get_array_recursive_count(&$a)
     {
         
    $c 0;
         foreach(
    $a as $v)
         {
             if(
    is_array($v))
                 
    $c += get_array_recursive_count($v);
             else
                 
    $c++;
         }
     
         return 
    $c;
     }
     
     print 
    get_array_recursive_count($a);
     print 
    "<br/>";
     print 
    count($a);
    Output:
    Code:
     5
     3
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice