Ejercicio empleados

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form>
            Nombre: <input type="text" name="nombre">
            Sueldo: <input type="number" name="sueldo">
            <input type="submit">
        </form>
        <?php
        session_start();
        $nombre = filter_input(INPUT_GET, "nombre");
        $sueldo = filter_input(INPUT_GET, "sueldo", FILTER_VALIDATE_INT);
        $borrar = filter_input(INPUT_GET, "borrar");
        if (!empty($borrar)) {
            unset($_SESSION['empleados'][$borrar]);
        }
        if (!empty($nombre) && is_numeric($sueldo)) {
            //Si empleados está vacía añadimos directamente el valor
            if (empty($_SESSION['empleados'])) {
                $_SESSION['empleados'][$nombre] = $sueldo;
            } else {
                //Creamos un array para copiar empleados
                $auxiliar = [];
                foreach ($_SESSION['empleados'] as $c => $v) {
                    //Si el sueldo es menor lo metemos antes
                    if ($sueldo < $v) {
                        $auxiliar[$nombre] = $sueldo;
                    }
                    //Y siempre copiamos el elemento, lo que pasa es
                    //Que si el sueldo era menor lo hemos añadido en
                    //el if anterior
                    $auxiliar[$c] = $v;
                }
                //Si después de recorrer el array no lo hemos introducido
                //Es que debe ir al final
                if (!isset($auxiliar[$nombre])) {
                    $auxiliar[$nombre] = $sueldo;
                }
                //Sustituimos el array empleados por la copia
                $_SESSION['empleados'] = $auxiliar;
            }
       }
            if (!isset($_SESSION['empleados'])) :
                $_SESSION['empleados'] = [];
            endif;
            ?>
            <table>
                <tr><th>Empleado</th><th>Sueldo</th><th>Acciones</th></tr>
                <?php
                foreach ($_SESSION['empleados'] as $c => $v):
                    ?>
                    <tr><td><?= $c ?></td><td><?= $v ?></td>
                        <td><a href="?borrar=<?= $c ?>">Borrar</a></td></tr>
                    <?php
                endforeach;
                ?>
        </table>
    </body>
</html>

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos