Re: counting nested array

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



OK this the little function i made to solve this..
[CODE]

    function countNested($array){
        foreach($array as $value){
            if(is_array($value))
                $total=$this->countNested($value)+$total;
            }else{
                $total=$total+1;
            }
        }
        return $total;
    }

[/CODE]

any optimizations are welcome....



On 8/16/05, Robin Vickery <robinv@xxxxxxxxx> wrote:
> On 8/16/05, Ing. Josué Aranda <josuearanda@xxxxxxxxx> wrote:
> >
> > The number of the branches is not always the same.. (it depends on the
> > query).. when i use count($array, COUNT_RECURSIVE) for nested arrays..
> > it give to me the total including the nodes in the branches ( in this
> > case 28).. now here is the question, how i can get only the last nodes
> > in this case ... exist a easy way to do it?. or its necessary to make
> > a funcion with a bunch of foreach?.. any suggestions are welcome =o)
> > thanks!
> 
> If I understand you correctly, you only want the leaves of your tree -
> in your example, that would be 20?
> 
> I don't think there's a convenient builtin function that'll do it, but
> it's not hard to write your own:
> 
> <?php
> 
> function leaf_count($item) {
>   $count = 0;
> 
>   if (!is_array($item)) { return 1; }
> 
>   foreach ($item as $element) {
>     $count += leaf_count($element);
>   }
> 
>   return $count;
> }
> 
> print leaf_count($array);
> 
> ?>
> 
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 


-- 
____________________

JOSUE ARANDA>>>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux