¿Cómo verificar si un array está vacío en PHP? Cinco métodos que todo desarrollador debe conocer
\n\n¿Alguna vez has escrito un script en PHP que debía procesar un array de datos y de repente te encontraste con el error «Undefined offset» o «Trying to access array offset on null»? ¿Te suena, verdad? Verificar si un array está vacío es una de esas operaciones básicas pero críticas que muchos desarrolladores novatos hacen mal. En este artículo, analizaremos cómo verificar si un array está vacío en PHP y cubriremos todos los detalles: desde el uso simple de empty() hasta la comparación con []. ¡Prepara tu editor de código favorito, que habrá mucha práctica!
¿Por qué es importante? Una historia real
\n\nImagina que estás desarrollando una tienda online. Un cliente añade productos al carrito y finaliza la compra. Tu código debe verificar si hay productos en el carrito antes de realizar el cobro. Si verificas incorrectamente si el array de PHP está vacío, podrías cobrar un carrito vacío (y recibir una llamada furiosa del cliente) o no procesar el pedido en absoluto. Por eso, la pregunta «How to check whether an array is empty using PHP?» tiene miles de visitas en Stack Overflow. Aclaremos esto de una vez por todas.
\n\nMétodo 1. La función empty() — la más simple y popular
\n\nLa función empty() en PHP es una navaja suiza para verificar valores vacíos. Devuelve true si la variable no existe, es igual a false, null, una cadena vacía, 0 o un array vacío. Para comprobar si un array está vacío, es la opción ideal.
<?php\n$emptyArray = [];\n$filledArray = ['manzana', 'plátano'];\n\nif (empty($emptyArray)) {\n echo '¡El array está vacío!'; // Muestra: ¡El array está vacío!\n}\n\nif (!empty($filledArray)) {\n echo 'El array contiene elementos: ' . implode(', ', $filledArray);\n // Muestra: El array contiene elementos: manzana, plátano\n}\n?>\n\nImportante: empty() no genera una advertencia si la variable no está definida. Es seguro y práctico. Sin embargo, recuerda: si el array contiene un elemento con valor 0 o una cadena vacía '', empty() no considera que todo el array esté «vacío» — solo verifica el array en sí, no sus elementos.
Método 2. La función count() — conteo preciso de elementos
\n\nSi necesitas saber la cantidad exacta de elementos, usa count(). Un array se considera vacío si count($array) === 0. Este método es especialmente útil cuando no solo quieres verificar si está vacío, sino también obtener su tamaño.
<?php\n$users = ['Ana', 'Carlos'];\n$emptyUsers = [];\n\nif (count($emptyUsers) === 0) {\n echo 'La lista de usuarios está vacía.'; // Muestra: La lista de usuarios está vacía.\n}\n\necho 'Cantidad de usuarios: ' . count($users); // Muestra: 2\n?>\n\nDetalle importante: count() funciona incluso con una variable inexistente, pero generará una advertencia Warning: count(): Parameter must be an array or an object that implements Countable. Para evitar errores, combínalo con isset() o is_array().
Método 3. Comparación con un array vacío (=== [])
\n\nA veces, la forma más directa es la mejor. Puedes comparar la variable con un array vacío usando la comparación estricta ===. Esto funciona rápido y es intuitivo.
<?php\n$data = [];\n\nif ($data === []) {\n echo 'El array data está vacío.'; // Muestra: El array data está vacío.\n}\n\n$config = ['debug' => true];\nif ($config !== []) {\n echo 'La configuración no está vacía.';\n}\n?>\n\nVentajas: El código se lee como lenguaje natural. Desventajas: Si la variable no está definida, obtendrás un error fatal Undefined variable. Por lo tanto, usa esto solo cuando estés seguro de que la variable existe.