valores - PHP array: ¿count o sizeof?
php length array (6)
De acuerdo con phpbench :
¿Vale la pena el esfuerzo para calcular la longitud del ciclo de antemano?
//pre-calculate the size of array
$size = count($x); //or $size = sizeOf($x);
for ($i=0; $i<$size; $i++) {
//...
}
//don''t pre-calculate
for ($i=0; $i<count($x); $i++) { //or $i<sizeOf($x);
//...
}
Se proporciona un bucle con 1000 teclas con valores de 1 byte.
Con prec calc - count () Tiempo total: 152 μs
Sin cálculo precalculado () Tiempo total: 70401 μs
Con prec calc - sizeof () Tiempo total: 212 μs
Sin precalcárea - sizeof () Tiempo total: 50644 μs
Así que personalmente prefiero usar count () en lugar de sizeof () con precalc .
Para encontrar la cantidad de elementos en una $array
PHP $array
, ¿cuál es más rápido / mejor / más fuerte?
count($array)
o sizeof($array)
?
Editar
Gracias a Andy Lester, he refinado mi pregunta desde el punto de vista multilingüe. Los comentaristas manuales dicen
"[sizeof] no significa lo mismo en muchos otros idiomas en función de C"
¿Es esto cierto?
Según el sitio web, sizeof()
es un alias de count()
, por lo que deberían estar ejecutando el mismo código. Quizás sizeof()
tiene un poco de sobrecarga porque necesita resolverlo para count()
? Sin embargo, debería ser muy mínimo.
Son idénticos según sizeof()
En ausencia de una razón para preocuparse por "más rápido", siempre optimice para el humano. ¿Qué tiene más sentido para el lector humano?
Usaría count()
si son iguales, como en mi experiencia es más común, y por lo tanto hará que menos desarrolladores que lean tu código digan " sizeof()
, ¿qué es eso?" y tener que consultar la documentación.
Creo que significa que sizeof()
no funciona como lo hace en C (calculando el tamaño de un tipo de datos). Probablemente hizo esta mención explícitamente porque PHP está escrito en C, y proporciona una gran cantidad de envoltorios con el mismo nombre para las funciones C ( strlen()
, printf()
, etc.)
Utilice la función de conteo. Aquí hay un ejemplo de cómo contar una matriz en un elemento
$cars = array("Volvo","BMW","Toyota");
echo count($cars);
La función count()
devuelve la cantidad de elementos en una matriz.
La función sizeof()
devuelve la cantidad de elementos en una matriz.
La función sizeof()
es un alias de la función count()
.
sizeof()
es solo un alias de count()
como se menciona aquí