Re: Re: Array sizes?
| From: | Rory Browne | Date: | Wed, 08 Feb 2006 18:40:10 +0000 |
| Subject: | Re: Re: Array sizes? | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-230114@lists.php.net to get a copy of this message | ||
> At 01:05 AM 2/8/2006, Barry wrote:
> >I don't think a "function" exists, but i would probably use (for
> >benchmarking) a recursive foreach in combination with strlen.
> >And add it all up.
> >(This is probably some work for the PC so that's why benchmarking)
>
>
> It would be interesting to know whether that method was faster or
> slower than using this:
>
> $iLen = strlen(implode("", $aArray));
the problem I would have with the above code would be that it assumes
you're using a single dimention array.
Recursive foreach:
function array_size($a){
$size = 0;
while(list($k, $v) = each($a)){
$size += is_array($v) ? array_size($v) : strlen($v);
}
return $size;
}
This could possibly be optimised even more by using references or something
like that.
eg
foreach(array_keys($a) as $k){
size = is_array($a[$k]) =& array_size($a[$k]) : strlen($a[$k])
But I think that for the most part your time programming will be more
important than the programs time running.