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

search for in the

sortspacer spacer shuffle
[edit] Last updated: Fri, 15 Mar 2013

view this page in

sizeof

(PHP 4, PHP 5)

sizeofAlias of count()

Description

This function is an alias of: count().



sortspacer spacer shuffle
[edit] Last updated: Fri, 15 Mar 2013
 
spacer add a note User Contributed Notes sizeof - [5 notes]
up
down
3
PixEye
4 years ago
I am quite surprised about previous posts. Here are my advices:

1/ prefer the count() function instead of sizeOf() as sizeOf() is only an alias of count() and does not mean the same in many other languages based on C (avoid ambiguity).

2/ prefer the powerful forEach() function to iterate over arrays.
up
down
1
communiti.ch
4 years ago
If your array is "huge"

It is reccomended to set a variable first for this case:

THIS->

$max = sizeof($huge_array);
for($i = 0; $i < $max;$i++)
{
code...
}

IS QUICKER THEN->

for($i = 0; $i < sizeof($huge_array);$i++)
{
code...
}
up
down
0
umopdn [at] msn [dawt] com
4 years ago
a) Always try and use PHP's internal routines to iterate through objects of various types (arrays in most examples below).

Instead of interpreting your code to loop through them, they use their own internal routines which are much faster.

(This is why foreach () will run faster than manual interation)

b) It is _always_ good practice to leave as many static resulting functions outside of loops, having operations that return the exact same piece of data every iteration of the loop is not pretty on resources.

c) I agree with PixEye's remarks on sizeof().  In PHP it is just an alias for the true function count().  It has other meanings logically in other languages rather than the number of elements in an object.  This should be avoided as it may confuse developers transitioning to PHP from other languages.
up
down
-1
rrf5000 at psu dot edu
4 years ago
The reason that the FOR loop runs faster on LARGE arrays if you save its size first (using count or sizeof) is pretty simple.  It's because if you use

<?php
for ($i = 0; $i < sizeof($huge_array); $i++) {
 
//code
}
?>

every time the FOR loop checks its condition (is $i less than sizeof($huge_array) ), it must run the sizeof() function on $huge_array again.  This is what causes the extra processing time, which can become significant on larger arrays.

This has been thoroughly commented on both correctly and incorrectly in the User Contributed Notes for the count() function.

Edited 9-Jan-2013 by Levi Morrison (levim)
up
down
-1
svanegmond at tinyplanet dot ca
5 years ago
For people who use this kind of idiom:

for ($i=0; $i<sizeof($array); $i++) {
   ...
}

At least in PHP4, you will notice a large performance improvement if you switch to:

$max = sizeof($array);
for ($i=0; $i<$max; $i++) {
   ...
}

I had an array with a few thousand items in it, each of them a map with 5 key-value pairs, and just for'ing through the array took a second of CPU on a decent machine.
spacer add a note

 
show source | credits | stats | sitemap | contact | advertising | mirror sites
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.