Si ya dominás variables, condicionales, bucles y funciones, estos 20 ejercicios intermedios de PHP resueltos te van a ayudar a combinar conceptos y acercarte a problemas reales.
1. Filtrar números pares de un array
<?php $numeros = [1,2,3,4,5,6,7,8]; $pares = array_filter($numeros, fn($n) => $n % 2 === 0); print_r($pares); ?>
2. Ordenar productos por precio
<?php
$productos = [
['nombre' => 'Mouse', 'precio' => 15000],
['nombre' => 'Monitor', 'precio' => 180000],
['nombre' => 'Teclado', 'precio' => 25000]
];
usort($productos, fn($a, $b) => $a['precio'] <=> $b['precio']);
print_r($productos);
?>
3. Buscar un usuario por email
<?php
$usuarios = [
['nombre' => 'Ana', 'email' => 'ana@mail.com'],
['nombre' => 'Juan', 'email' => 'juan@mail.com']
];
$emailBuscado = 'juan@mail.com';
$resultado = array_filter($usuarios, fn($u) => $u['email'] === $emailBuscado);
print_r($resultado);
?>
4. Eliminar duplicados
<?php $valores = [1,2,2,3,4,4,5]; $unicos = array_unique($valores); print_r($unicos); ?>
5. Contar palabras de un texto
<?php
$texto = 'PHP es simple de aprender y muy utilizado';
echo str_word_count($texto);
?>
6. Validar un email
<?php $email = 'usuario@email.com'; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo 'Email válido'; } else { echo 'Email inválido'; } ?>
7. Validar un formulario POST
<?php $nombre = trim($_POST['nombre'] ?? ''); if ($nombre === '') { echo 'El nombre es obligatorio'; } ?>
8. Mantener valores del formulario
<input
type="text"
name="nombre"
value="<?= htmlspecialchars($_POST['nombre'] ?? '') ?>"
>
9. Generar una contraseña aleatoria
<?php $caracteres = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $password = ''; for ($i = 0; $i < 12; $i++) { $password .= $caracteres[random_int(0, strlen($caracteres) - 1)]; } echo $password; ?>
10. Guardar una contraseña con password_hash()
<?php
$password = 'ClaveSegura123';
$hash = password_hash($password, PASSWORD_DEFAULT);
echo $hash;
?>
11. Comprobar una contraseña
<?php if (password_verify($password, $hash)) { echo 'Contraseña correcta'; } ?>
12. Crear una sesión de usuario
<?php session_start(); $_SESSION['usuario_id'] = 10; $_SESSION['nombre'] = 'Ana'; ?>
13. Proteger una página con sesión
<?php session_start(); if (!isset($_SESSION['usuario_id'])) { header('Location: login.php'); exit; } ?>
14. Leer un archivo de texto
<?php
$contenido = file_get_contents('datos.txt');
echo nl2br(htmlspecialchars($contenido));
?>
15. Guardar datos en un archivo
<?php $texto = "Nueva línea "; file_put_contents( 'datos.txt', $texto, FILE_APPEND ); ?>
16. Conectarse a MySQL con PDO
<?php $pdo = new PDO( 'mysql:host=localhost;dbname=tienda;charset=utf8mb4', 'root', '' ); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); ?>
17. Buscar un registro con una consulta preparada
<?php
$stmt = $pdo->prepare(
'SELECT * FROM productos WHERE id = :id'
);
$stmt->execute([
'id' => 5
]);
$producto = $stmt->fetch(PDO::FETCH_ASSOC);
?>
18. Insertar un producto con PDO
<?php
$stmt = $pdo->prepare(
'INSERT INTO productos (nombre, precio)
VALUES (:nombre, :precio)'
);
$stmt->execute([
'nombre' => 'Teclado',
'precio' => 25000
]);
?>
19. Crear una paginación básica
<?php $pagina = max(1, (int) ($_GET['pagina'] ?? 1)); $porPagina = 10; $offset = ($pagina - 1) * $porPagina; $stmt = $pdo->prepare( 'SELECT * FROM productos LIMIT :limite OFFSET :offset' ); $stmt->bindValue(':limite', $porPagina, PDO::PARAM_INT); $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); ?>
20. Crear un filtro de búsqueda
<?php $buscar = trim($_GET['buscar'] ?? ''); $stmt = $pdo->prepare( 'SELECT * FROM productos WHERE nombre LIKE :buscar' ); $stmt->execute([ 'buscar' => '%' . $buscar . '%' ]); $productos = $stmt->fetchAll(PDO::FETCH_ASSOC); ?>
¿Qué sigue?
Si podés resolver estos ejercicios sin copiar las soluciones, ya estás listo para trabajar con desafíos avanzados: POO, seguridad, relaciones entre clases, arquitectura MVC y proyectos completos.
Serie de ejercicios de PHP
- 20 ejercicios de PHP para principiantes resueltos paso a paso
- 20 ejercicios intermedios de PHP resueltos: arrays, funciones, formularios y PDO
- 20 ejercicios avanzados de PHP resueltos: POO, MySQL, seguridad y MVC
También podés ver todos los contenidos prácticos en la sección Ejercicios resueltos.
¿Te sirvió esta guía? ☕
Descubre más desde Club Programador
Suscríbete y recibe las últimas entradas en tu correo electrónico.
2 opiniones en “20 ejercicios intermedios de PHP resueltos: arrays, funciones, formularios y PDO”