Para encontrar la cantidad de elementos en un 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 para que signifique desde una perspectiva multilingüe. Los comentaristas manuales dicen
"[sizeof] no significa lo mismo en muchos otros lenguajes basados en C"
¿Es esto cierto?
Respuestas:
Lo usaría
count()
si son iguales, ya que en mi experiencia es más común y, por lo tanto, hará que menos desarrolladores que lean su código digan "sizeof()
¿qué es eso?" y tener que consultar la documentación.Creo que significa
sizeof()
que no funciona como lo hace en C (calcular el tamaño de un tipo de datos). Es probable que este hecho mención explícita debido a que PHP está escrito en C, y ofrece una gran cantidad de envoltorios con nombres idénticos para funciones de C (strlen()
,printf()
, etc.)fuente
De acuerdo con phpbench :
¿Vale la pena el esfuerzo de calcular la longitud del ciclo por adelantado?
Se da un bucle con 1000 claves con valores de 1 byte.
Por lo tanto, personalmente prefiero usar count () en lugar de sizeof () con precalc .
fuente
Son idénticos según
sizeof()
En ausencia de cualquier motivo para preocuparse por "más rápido", siempre optimice para el ser humano. ¿Qué tiene más sentido para el lector humano?
fuente
Según el sitio web,
sizeof()
es un alias decount()
, por lo que deberían estar ejecutando el mismo código. ¿Quizássizeof()
tiene un poco de sobrecarga porque necesita resolverlocount()
? Sin embargo, debería ser muy mínimo.fuente
Sé que esto es viejo, pero solo quería mencionar que probé esto con PHP 7.2:
y el resultado fue:
Así que solo úsalo
count()
.fuente
1 000 000 000 iteration of count() took 525 sec
1 000 000 000 iteration of sizeof() took 1361 sec
sizeof()
es solo un alias decount()
lo mencionado aquíhttp://php.net/manual/en/function.sizeof.php
fuente
Utilice la función de conteo. Aquí hay un ejemplo de cómo contar una matriz en un elemento.
La
count()
función devuelve el número de elementos en una matriz.La
sizeof()
función devuelve el número de elementos en una matriz.La
sizeof()
función es un alias de lacount()
función.fuente