W3docs

sizeof()

Aprende cómo la función PHP sizeof() cuenta los elementos de un array, su relación con count() y cómo COUNT_RECURSIVE maneja arrays anidados, con ejemplos ejecutables.

Introducción

PHP incluye muchas funciones integradas para trabajar con arrays. sizeof() es una de las más simples: devuelve el número de elementos que contiene un array. Esta página explica cómo funciona sizeof(), cómo se comporta con arrays anidados (multidimensionales) y por qué en realidad es solo otro nombre para count().

¿Qué es sizeof()?

sizeof() devuelve el número de elementos de un array. Es un alias de count() — las dos funciones son idénticas internamente, por lo que comparten el mismo comportamiento, valores de retorno y rendimiento. Todo lo que puedes hacer con count() también puedes hacerlo con sizeof(), y viceversa.

Dado que es un alias y no una implementación separada, no existe ninguna situación en la que una sea más rápida o más capaz que la otra.

Sintaxis

sizeof(array|Countable $value, int $mode = COUNT_NORMAL): int
ParámetroRequeridoDescripción
$valueEl array (u objeto Countable) cuyos elementos deseas contar.
$modeNoCómo contar. COUNT_NORMAL (por defecto) cuenta solo los elementos del nivel superior; COUNT_RECURSIVE también cuenta los elementos dentro de arrays anidados.

Devuelve un int — el número de elementos.

Ejemplo básico

Contando los elementos de un array plano:

php— editable, runs on the server

Salida:

3

El array contiene tres elementos, por lo que sizeof() devuelve 3.

Contar arrays anidados con COUNT_RECURSIVE

Por defecto, sizeof() solo cuenta los elementos del nivel superior. Para contar también los elementos dentro de sub-arrays, pasa COUNT_RECURSIVE como segundo argumento:

<?php

$data = [
    'fruits'     => ['apple', 'banana'],
    'vegetables' => ['carrot'],
];

echo sizeof($data);                  // top-level keys only
echo "\n";
echo sizeof($data, COUNT_RECURSIVE); // top-level + nested items

Salida:

2
5

COUNT_NORMAL ve dos claves de nivel superior (fruits y vegetables). COUNT_RECURSIVE cuenta esas dos claves más los tres valores dentro de ellas (apple, banana, carrot), dando 5.

sizeof() vs count()

Usa el nombre que mejor te resulte — el resultado siempre es el mismo:

<?php

$nums = [10, 20, 30, 40];

var_dump(sizeof($nums) === count($nums));

Salida:

bool(true)

En la práctica, la documentación oficial de PHP recomienda count(), ya que el nombre sizeof puede confundirse fácilmente con el operador sizeof de C (que mide el tamaño en memoria, no la cantidad de elementos). Usar count() mantiene tu código consistente con la mayoría de los proyectos PHP modernos.

Errores comunes

  • No cuenta los caracteres de una cadena. sizeof('hello') genera una advertencia y devuelve 1, no 5. Usa strlen() para la longitud de una cadena.
  • No suma los tamaños de múltiples arrays. sizeof() acepta un solo argumento de array, no varios.
  • Un array vacío devuelve 0. Esto hace que sea seguro usarlo directamente en una condición de bucle como for ($i = 0; $i < sizeof($arr); $i++).

Conclusión

sizeof() devuelve el número de elementos de un array y es un alias directo de count(). Pasa COUNT_RECURSIVE cuando también necesites contar elementos anidados. Para código nuevo, prefiere count() por mayor claridad — pero ambas se comportan de forma idéntica.

Práctica

Práctica
¿Qué hace la función 'sizeof' en PHP?
¿Qué hace la función 'sizeof' en PHP?
Was this page helpful?