Dos ejercicios con todo lo visto hasta ahora: condicionales, ciclos y arreglos. El primero se ejecuta en la terminal; el segundo es una página para el navegador. Se resuelven solo con foreach, count y lo de las partes anteriores.

Cómo trabajarlos

Resuelve cada uno antes de abrir la solución. Cuando funcione, agrega y quita elementos del arreglo: el programa tiene que seguir dando bien sin cambiar nada más.

Ejercicio 1. Resumen de notas

Con este arreglo:

<?php
$notas = [5.5, 3.2, 6.1, 4.0, 2.8, 6.8];

El programa imprime:

  • Cada nota con su número (empezando en 1, no en 0), con coma decimal, y si está aprobada (4,0 o más) o reprobada.
  • Cuántas notas están aprobadas, de cuántas.
  • El promedio, con un decimal.
  • La nota más alta.
Nota 1: 5,5 (aprobada)
Nota 2: 3,2 (reprobada)
Nota 3: 6,1 (aprobada)
Nota 4: 4,0 (aprobada)
Nota 5: 2,8 (reprobada)
Nota 6: 6,8 (aprobada)
Aprobadas: 4 de 6
Promedio: 4,7
Nota más alta: 6,8

Pista

Todo sale de un solo foreach, con tres variables preparadas antes del ciclo: la suma, el contador de aprobadas y la mayor. Para la mayor, parte con la primera nota ($notas[0]) y cámbiala cada vez que encuentres una más alta.

Ejercicio 2. Tabla de productos

En productos.php, con esta lista de registros:

<?php
$productos = [
    ["nombre" => "Cuaderno universitario", "precio" => 2490, "stock" => 40],
    ["nombre" => "Lápiz pasta azul", "precio" => 390, "stock" => 0],
    ["nombre" => "Mochila", "precio" => 18990, "stock" => 5],
    ["nombre" => "Calculadora científica", "precio" => 12990, "stock" => 0],
];
  • Una tabla con las columnas producto, precio y stock, generada con foreach.
  • Los precios con punto de miles: $18.990.
  • Si el stock es 0, la celda dice Agotado, en rojo y en negrita (text-red-700 font-bold).
  • Bajo la tabla, el valor del inventario: la suma de precio × stock de todos los productos.
  • Si la lista está vacía ($productos = [];), en vez de la tabla aparece el texto No hay productos.

Lo que se ve en el navegador:

ProductoPrecioStock
Cuaderno universitario$2.49040
Lápiz pasta azul$390Agotado
Mochila$18.9905
Calculadora científica$12.990Agotado

Valor del inventario: $194.550

Pista

Calcula el valor del inventario con un foreach antes del HTML. Después, en la tabla, otro foreach solo imprime. Para el caso vacío, revisa mensaje cuando la lista está vacía.

Errores comunes

SíntomaCausaSolución
Nota 0: 5,5Se usó la posición del arreglo, que empieza en 0Lleva un contador propio que parta en 1
El promedio queda mal al agregar una notaSe dividió por un número escrito a manoDivide por count($notas)
Warning: Array to string conversionSe imprimió $producto enteroImprime una clave: $producto["nombre"]
Warning: Undefined array key "Nombre"La clave se escribió distinto (mayúscula)Las claves distinguen mayúsculas: "nombre"
El valor del inventario sale 0 con productosEl $valorInventario = 0 quedó dentro del foreachCréalo antes del ciclo