No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
16 Hrs
12 Min
38 Seg
Curso Práctico de PHP

Curso Práctico de PHP

Ana Belisa Martínez

Ana Belisa Martínez

Ejercicios de práctica

15/17

Lectura

Ahora que ya conoces cómo podemos trabajar con PHP para hacer cosas más complejas te reto a realizar los siguientes ejercicios para que continúes practicando tu lógica.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 80

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

15. Ejercicios de práctica:

Reto 1: Me costó bastante porque quise que se crearan de manera dinámica cada cosa (de acuerdo a la cantidad ingresada de productos, se fabriquen los input), y luego en base a los productos ingresados se muestre el resultado.

Hice tres archivos y el resultado es el siguiente:

Código reto3.php:

<form action="proceso_productos.php" method="post">
    <label for="">Indicar cantidad de productos a ingresar:</label><br>
    <input type="number" name="productsQuantity" id="">
    <button type="submit">Enviar</button>
</form>

Código proceso_productos.php:

<?php
$productsQuantitys = $_POST["productsQuantity"];

$form = "<form action='proceso_productos_final.php' method='post'>";

for($i=0; $i<$productsQuantitys; $i++) {
    $form .= "Ingresar precio de producto " . ($i+1) . ": " .
    "<input type='number' name='product" . $i . "'><br>";
}
$button = "<button type='submit'>Enviar</button>";
$formCierre ="</form>";
$tempi = $productsQuantitys;
echo $form.$button.$formCierre;

Código proceso_productos_final.php:

<?php
    for($i=0; $i<count($_POST); $i++) {
        echo "Nuevo precio de producto " . ($i+1) . ": $".
        ($_POST["product$i"] - ($_POST["product$i"] * 0.35)) .
        "<br>";
}

Reto 2:

El segundo ejercicio fue un tanto similar, al inicio establecí el tamaño, luego, multipliqué largo por ancho para saber su tamaño final, y ordené el array de mayor a menor, finalmente imprimiendo el resultado.

Hice también 3 archivos, viéndose así:

Comparto el código de los retos:

entry.html:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Entrada de productos</title>
</head>
<body>
    <main>
        <form action="size_data_entry.php" method="post">
            <label for="">Indicar cantidad de productos a ingresar en la web:</label><br>
            <input type="number" name="productsQuantity" id="">
            <button type="submit">Enviar</button>
        </form>
    </main>
</body>
</html>

size_data_entry.php:

<?php
$productsQuantity = $_POST["productsQuantity"];

$form = "<form action='final_result.php' method='post'>";

for($i=0; $i<$productsQuantity; $i++) {
    $form .= "Ingresar alto de producto " . ($i+1) . ": " .
    "<input type='number' name='productHeight" . $i . "'><br>" .
    "Ingresar ancho de producto " . ($i+1) . ": " .
    "<input type='number' name='productWidth" . $i . "'><br>";
}
$button = "<button type='submit'>Enviar</button>";
$formCierre ="</form>";
echo $form.$button.$formCierre;

final_result.php:

<?php
$finalSizeArray = [];
    for($i=0; $i<(count($_POST)/2); $i++) {
        $finalSizeArray[$i] = ($_POST["productHeight$i"]*$_POST["productWidth$i"]);
}
array_multisort($finalSizeArray, SORT_DESC);
$i = 1;
foreach($finalSizeArray as $value) {
    echo "Figura $i, mide $value<br>";
    $i++;
}

Aquí mi código, saludos!

Descuentos a la vista

<?php 

function Descontar($precioOriginal, $descuentoPorcentaje) {
  return $precioOriginal - ($precioOriginal * $descuentoPorcentaje / 100);
}

$precio = 299;
$descuento = 35;

echo "Precio original: $$precio<br>";

echo "Descuento: $descuento%<br><br>";

$precioConDescuento = Descontar($precio, $descuento);

echo "Precio con descuento: $$precioConDescuento<br>";

echo "Ahorras: $" . ($precio - $precioConDescuento) . "<br>";

De mayor a menor

<?php

$productos = [
  'Celular' => [
    'ancho' => 5,
    'alto' => 20
  ],
  'PlayStation 5' => [
    'ancho' => 47,
    'alto' => 43
  ],
  'Audifonos' => [
    'ancho' => 3,
    'alto' => 10
  ],
  'Tablet' => [
    'ancho' => 25,
    'alto' => 30
  ],
  'Teclado' => [
    'ancho' => 100,
    'alto' => 25
  ]
];

function calcularArea($producto) {
  return $producto['ancho'] * $producto['alto'];
}

$areaProductos = array_map("calcularArea", $productos);

asort($areaProductos);

echo "<b>Productos sin ordenar:</b><br>";

foreach ($productos as $nombre => $producto) {
  echo "$nombre: " . $producto['ancho'] . " x " . $producto['alto'] . "<br>";
}

echo "<br>";
echo "<b>Productos ordenados:</b><br>";

foreach ($areaProductos as $producto => $area) {
  echo "$producto: $area cm<sup>2</sup><br>";
}

DECUENTO 35%

<?php

function descuento ($total) {
    return round((35 * $total) / 100,2);
}

$products = ["articulo 1" => 300,"articulo 2" => 500];

echo "<h1>Toda la tienda esta con el 35% de descuento.</h1>";

foreach ($products as $name => $price) {
    $ahorra = descuento($price);
    $total = $price - $ahorra;
    echo "$name price $$price - $ahorra after discount $$total <br>";
}

Reto 2 De mayor a menor

Me tarde vastante poque me toco comprender un poco de POO y revisar bastante documentacion, pero me divertí

main.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    
    <div class='form-container'>
        <h3>Ingrese la cantidad de articulos que desee almacenar</h3>
        <form action='width-height.php' class="form-main">
            <input type='number' name='cant'>
            <button type='submit'>Enviar</button>
        </form>
    </div>

</body>
</html>

width-height.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <div class='form-container'>
        <form action="analisis.php" method='$_POST'>
            <?php for($i=0; $i < $_REQUEST["cant"]; $i++): ?>
                <div>
                    <label for="">ingrese los datos del producto<?=$i+1?></label>
                    <input type="text" placeholder='Ingrese el nombre del producto' name="nombre<?=$i?>">
                    <input type='number' placeholder='Ingrese la altura en cm' name='height<?=$i?>'>
                    <input type="number" placeholder='Ingrese el ancho en cm' name='width<?=$i?>'>
                </div>
            <?php endfor;?>
            <button type='submit'>Enviar</button>
        </form>
    </div>
</body>
</html>

analisis.php

<?php

function object_sorter($clave, $orden=null) {
    return function ($a, $b) use ($clave,$orden) {
        $result = ($orden =="DESC") ? strnatcmp($b->$clave, $a->$clave) : strnatcmp($a->$clave, $b->$clave);
        return $result;
    };
}


class producto {
    public $name;
    public $height;
    public $width;
    public $area;

    public function __construct($name, $height = 0, $width = 0, $area = 0) {
        $this->name = $name;
        $this->height = $height; 
        $this->width = $width;
        $this->area = $area;
    }

public function mostrarInfo($i) {
    $info = "<h3>Informacion del producto#".$i.": </h3> ";
    $info.= "<br/> Nombre: " .$this->name;
    $info.= "<br/> alto: " .$this->height;
    $info.= "<br/> ancho: " .$this->width;
    $info.= "<br/> area: " . $this->area;
    return $info;
}

}
$producto = [];
for($i=0; $i < (count($_REQUEST)/3); $i++) {
    $producto[$i] = new producto($_REQUEST["nombre".$i], $_REQUEST["height".$i], $_REQUEST["width".$i], (($_REQUEST["height".$i])*($_REQUEST["width".$i])));
}

usort($producto, object_sorter('area', 'DESC'));
echo "ORDEN DESCENDENTE: ";

for($i=0; $i < (count($_REQUEST)/3); $i++) {
    echo $producto[$i]->mostrarInfo($i+1);
}


?>

ITEMS ORDENADOS

<?php

function listarMenorAmayor (array $tallas) {
    ksort($tallas);
    $counter = 0;
    foreach ($tallas as $ancho => $alto) {
        echo "item$counter ancho : $ancho X alto : $alto <br>";
        $counter++;
    }
}

listarMenorAmayor([
    500 => '300',
    30 => '100',
    400 => '10'
]);

Acá esta mi reto, me llevo su tiempo pero estoy contento con el resultado.
Descuentos:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Descuentos</title>
</head>
<body>
  <h1>Calcular descuento</h1>
  <form method="get" action="descuentos.php">
    <h2>Poné tu precio y tu descuento deseado y nosotros lo calculamos</h2>
    <input type="number" placeholder="precio" name="price" value="">
    <input type="number" placeholder="descuento" name="discount" value="">
    <input value="calcular" type="submit">
  </form>
</body>
</html>
<?php

$price = $_REQUEST['price'];
$discount = $_REQUEST['discount'];

function calculatePriceWithDiscount($precio,$descuento) {
  $perscentagePriceWithDiscount = 100 - $descuento;
  $priceWithDiscount = ($precio * $perscentagePriceWithDiscount) / 100;

  return $priceWithDiscount;
}

echo calculatePriceWithDiscount($price,$discount);

?>

Mayor a Menor:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <form action="mayorMenor.php">
    <p>Calculador de mayor a menor de medidas de productos</p>
    <div>
      <p>Producto 1</p>
      <input placeholder="altura" type="number" name="product0Heigth">
      <input type="number" placeholder="ancho" name="product0Width">
    </div>
    <div>
      <p>Producto 2</p>
      <input placeholder="altura" type="number" name="product1Heigth">
      <input type="number" placeholder="ancho" name="product1Width">
    </div>
    <div>
      <p>Producto 3</p>
      <input placeholder="altura" type="number" name="product2Heigth">
      <input type="number" placeholder="ancho" name="product2Width">
    </div>
    
   
    <input value="calcular" type="submit">
  </form>
</body>
</html>
<?php

$p1 = $_REQUEST['product0Heigth'] + $_REQUEST['product0Width'];
$p2 = $_REQUEST['product1Heigth'] + $_REQUEST['product1Width'];
$p3 = $_REQUEST['product2Heigth'] + $_REQUEST['product2Width'];

$start = "Ordenado por orden de mayor de dimensión de productos el resultado es el siguiente: ";
$d1 = "Dimensión de producto 1: $p1";
$d2 = "Dimensión de producto 2: $p2";
$d3 = "Dimensión de producto 3: $p3";

if($p1 > $p2 && $p2 > $p3) {
  echo $start."<br>".$d1."<br>".$d2."<br>".$d3;
} elseif($p1 > $p2 && $p3 > $p2) {
  echo $start."<br>".$d1."<br>".$d3."<br>".$d2;
} elseif ($p2 > $p3 && $p3 > $p1) {
  echo $start."<br>".$d2."<br>".$d3."<br>".$d1;
} elseif($p2 > $p3 && $p1 > $p3) {
  echo $start."<br>".$d2."<br>".$d1."<br>".$d3;
} elseif($p3 > $p1 && $p1 > $p2) {
  echo $start."<br>".$d3."<br>".$d1."<br>".$d2;
} elseif($p3 > $p1 && $p2 > $p1) {
  echo $start."<br>".$d3."<br>".$d2."<br>".$d1;
}

?>
![](https://static.platzi.com/media/user_upload/image-3dc1c110-988a-46c9-a8d7-597a6013103d.jpg)
tarde pero seguro, aunque no esta bien pulido, Funcionaa!!! ```js 100, "pantalon"=>150, "camisa"=>200, ]; echo "Decuento del 35% toda la tienda"."

"; foreach ($productos as $tipo => $valor){ echo $tipo ." a $" .$valor. "
"; } //html ?> <html> <head> <title>Formulario POST</title> </head> <body> <form method="post" action=""> <label for="%">Precio:</label> <input type="text" id="%" name="desx"> <button type="submit">Enviar</button> </form> </body> </html> "; echo "descuento: $".($porcentaje*.35)."
"; echo "valor final: $".($porcentaje-($porcentaje*.35))."
"; } descuento($_POST['desx']); echo "\n"; }; ?> ```![](https://static.platzi.com/media/user_upload/image-01dce1a2-d50c-4716-aff7-32b24e4288ea.jpg) y de mayor a menor: ```js ["ancho" => "", "alto" => ""], "azucar" => ["ancho" => "", "alto" => ""], "avena" => ["ancho" => "", "alto" => ""], "sopa" => ["ancho" => "", "alto" => ""], ]; // Verificar si se ha enviado el formulario if ($_SERVER["REQUEST_METHOD"] == "POST") { $i = 0; $claves = array_keys($productos); foreach ($productos as $key => $value) { $user_ancho = $_POST["ancho_" . $claves[$i]]; $user_alto = $_POST["alto_" . $claves[$i]]; // Asignar valores a 'ancho' y 'alto' $productos[$claves[$i]]["ancho"] = $user_ancho; $productos[$claves[$i]]["alto"] = $user_alto; // Calcular y agregar nueva clave 'dimensiones' $dimensiones = ((int)$user_ancho * (int)$user_alto); $productos[$claves[$i]]["dimensiones"] = $dimensiones; $i++; } // Ordenar el array de mayor a menor por la clave "dimensiones" uasort($productos, function($a, $b) { return $b['dimensiones'] <=> $a['dimensiones']; }); // Mostrar el resultado echo "

Productos ordenados por dimensiones (de mayor a menor):

"; foreach ($productos as $producto => $c) { echo "

Producto: " . $producto . "
Ancho: " . $c["ancho"] . "
Alto: " . $c["alto"] . "
Dimensión: " . $c["dimensiones"] . "

"; } } else { // Mostrar el formulario para ingresar datos echo '<form method="POST" action="">'; foreach ($productos as $producto => $detalles) { echo "<h5>Producto: $producto</h5>"; echo 'Ancho: <input type="number" name="ancho_' . $producto . '" required>
'; echo 'Alto: <input type="number" name="alto_' . $producto . '" required>
'; } echo '<button type="submit">Enviar</button>'; echo '</form>'; } ?> ```![](https://static.platzi.com/media/user_upload/image-0fe057c8-f1f5-4e08-83db-25d368051d62.jpg) ![](https://static.platzi.com/media/user_upload/Screenshot%202024-11-09%20125352-2d69fcaa-f211-496f-8c74-556c664a475f.jpg)
Paz y bien, este sería mi solución con relación a la primera actividad. Descuentos a la vista. ```js para mostrarlo en el formulario $resultado = "<label>Valor Original: \$$valorFormateado
Valor con Descuento: \$$valorConDescuento</label>"; } // Mostramos el formulario al usuario echo " <form action='' method='get'>

Descuentos a la vista

Ingrese el valor del producto para aplicar descuento

<input type='text' name='valor'>

<button type='submit'>Enviar</button>

$resultado </form> "; ?> ``` ![](https://static.platzi.com/media/user_upload/image-81a99acf-73cb-4544-be53-d35826b10b66.jpg) Muchas gracias. Bendiciones.
\\<html lang="es"> \<head>    \<meta charset="utf-8">    \<meta name="viewport" content="width=device-width, initial-scale=1">    \<title>Curso PHP | Prueba Tienda\</title>    \<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" >    \<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css">\</head> \<body>    \    \
        \

Prueba Tienda\

                \
            \
            \

Productos\</h5>                        \ 'Zapatos',                        'precio' => 100.00,                        'ancho' => 50,                        'alto' => 30                    ],                    \[                        'nombre' => 'Pantalón',                        'precio' => 150.00,                        'ancho' => 60,                        'alto' => 40                    ],                    \[                        'nombre' => 'Playera',                        'precio' => 200.00,                        'ancho' => 70,                        'alto' => 50                    ],                    \[                        'nombre' => 'Abrigo',                        'precio' => 150.00,                        'ancho' => 60,                        'alto' => 40                    ],                    \[                        'nombre' => 'Lentes',                        'precio' => 50.00,                        'ancho' => 60,                        'alto' => 40                    ],                    \[                        'nombre' => 'Sombrero',                        'precio' => 250.00,                        'ancho' => 10,                        'alto' => 20                    ]                ];                 for ($i=0; $i\<count($productos) ; $i++) {                     echo "\<span class='fw-semibold'>" . $productos\[$i]\['nombre'] . "\\
";                    echo "Precio: $" . number\_format($productos\[$i]\['precio'], 2, ".", "," ) . "\
";                    echo "Alto: " . $productos\[$i]\['alto'] . "cm \
";                    echo "Ancho: " . $productos\[$i]\['ancho'] . "cm \
\
";                }             ?>              \

             \
               \

Calculadora de Precio\</h5>                \<form  class="px-3" action="" method="post">                    \<label class="form-label fw-bolder ms-3" for="precio">Intoduce el Precio:\</label>                    \<input type="text" name="precio" class="form-control" id="precio">                    \<button class="btn btn-primary btn-sm w-100 mt-2" type="submit">Calcular\</button>                \</form>                \";                        echo "El precio con descuento es: $" . $precio\_descuento;                        echo "\

";                    }                 ?>              \
        \
           \        \<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"        integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous">    \</script>\</body> \</html>
![](https://static.platzi.com/media/user_upload/image-104b1ae1-e77b-4bab-8732-2081ec91f336.jpg) ![](https://static.platzi.com/media/user_upload/image-bef54efe-89a6-4426-9748-020a086c65bd.jpg) ![](https://static.platzi.com/media/user_upload/image-dacd3eec-38fe-4b43-834f-f7b8b6f61b53.jpg) Estoy tomando el curso y implementando Jquery , y DevExpress. me tarde pero se pudo.
Hola a todos acá comparto mi ejercicio.$inventario = \[    "camisa Hombre" => 55000,    "camisa Mujer" => 45000,    "pantalon Hombre" => 75000,    "pantalon Mujer" => 65000,]; function obtenerPrecio($inventario, $clave){    if ($inventario\[$clave]) {        return $inventario\[$clave];    } else {        return "el articulo no existe";    }} function articDisponibles($inventario){     echo "Articulo disponibles: \n";    echo "\nCamisa Hombre: $ " . obtenerPrecio($inventario, "camisa Hombre");    echo "\nCamisa Mujer: $ " .  obtenerPrecio($inventario, "camisa Mujer");    echo "\nPantalon Hombre: $ " .  obtenerPrecio($inventario, "pantalon Hombre");    echo "\nPantalon Mujer: $ " .  obtenerPrecio($inventario, "pantalon Mujer");}; $carrito = \[];function agregarProductosCarrito(&$inventario, &$carrito){     while (true) {        echo "\n Seleccione un articulo ";        echo "\n Para terminar escriba 'Salir' \n";        $articulo = trim(readline());         // Ver la entrada del usuario        echo "Entrada recibida: '$articulo'\n";         //condicion para salir del bucle        if (strtolower($articulo) == 'salir') {            break;        }        //se verifica si el articulo existe en el inventario        if ($inventario\[$articulo]) {            # agrega el articulo al carrito            $carrito\[$articulo] = $inventario\[$articulo];            //se elimina el articulo del inventario            unset($inventario\[$articulo]);            echo "El articulo se agrego al carrito correctamente. \n";        } else {            echo "El articulo no existe en inventario. \n";        }    }} function sumProdCar($carrito){    $precioTotal = 0;     foreach ($carrito as $precio) {        $precioTotal += $precio;    }    return $precioTotal;    echo "El valor total de la compra es de  $" . $precioTotal . "\n";} function descuento($carrito){    $valorCompra = sumProdCar($carrito);    var\_dump($valorCompra);    $descuento = $valorCompra \* 0.35;    $valorTotal = $valorCompra - $descuento;    echo "Valor total a pagar : $" . $valorTotal . "\n";} articDisponibles($inventario);agregarProductosCarrito($inventario, $carrito);sumProdCar($carrito);descuento($carrito); ```js $inventario = [ "camisa Hombre" => 55000, "camisa Mujer" => 45000, "pantalon Hombre" => 75000, "pantalon Mujer" => 65000, ]; function obtenerPrecio($inventario, $clave) { if ($inventario[$clave]) { return $inventario[$clave]; } else { return "el articulo no existe"; } } function articDisponibles($inventario) { echo "Articulo disponibles: \n"; echo "\nCamisa Hombre: $ " . obtenerPrecio($inventario, "camisa Hombre"); echo "\nCamisa Mujer: $ " . obtenerPrecio($inventario, "camisa Mujer"); echo "\nPantalon Hombre: $ " . obtenerPrecio($inventario, "pantalon Hombre"); echo "\nPantalon Mujer: $ " . obtenerPrecio($inventario, "pantalon Mujer"); }; $carrito = []; function agregarProductosCarrito(&$inventario, &$carrito) { while (true) { echo "\n Seleccione un articulo "; echo "\n Para terminar escriba 'Salir' \n"; $articulo = trim(readline()); // Ver la entrada del usuario echo "Entrada recibida: '$articulo'\n"; //condicion para salir del bucle if (strtolower($articulo) == 'salir') { break; } //se verifica si el articulo existe en el inventario if ($inventario[$articulo]) { # agrega el articulo al carrito $carrito[$articulo] = $inventario[$articulo]; //se elimina el articulo del inventario unset($inventario[$articulo]); echo "El articulo se agrego al carrito correctamente. \n"; } else { echo "El articulo no existe en inventario. \n"; } } } function sumProdCar($carrito) { $precioTotal = 0; foreach ($carrito as $precio) { $precioTotal += $precio; } return $precioTotal; echo "El valor total de la compra es de $" . $precioTotal . "\n"; } function descuento($carrito) { $valorCompra = sumProdCar($carrito); var_dump($valorCompra); $descuento = $valorCompra * 0.35; $valorTotal = $valorCompra - $descuento; echo "Valor total a pagar : $" . $valorTotal . "\n"; } articDisponibles($inventario); agregarProductosCarrito($inventario, $carrito); sumProdCar($carrito); descuento($carrito); ```
![](https://static.platzi.com/media/user_upload/tarea-01b00650-ec8d-41d2-aa03-e2e811473ec2.jpg) precio, con descuento del 35% listo
**Mayor a menor** ` $tamañoA; // Nota el cambio para ordenar de mayor a menor }); return $productos;}` `$productos = [ ['ancho' => 30, 'alto' => 20], ['ancho' => 10, 'alto' => 10], ['ancho' => 20, 'alto' => 15], ['ancho' => 25, 'alto' => 30],];` `$productosOrdenados = ordenarProductosPorTamaño($productos);` `// Imprimir los productos ordenados para verificarforeach ($productosOrdenados as $producto) { echo "Producto - Ancho: {$producto['ancho']}, Alto: {$producto['alto']}, Tamaño: " . ($producto['ancho'] * $producto['alto']) . "\n";}` **Descuento** `

Descuento a la vista

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Index</title>
</head>
<body>
    <form action="ejercicio3.php" method="get">
        <label for="cantidad">Cantidad de productos:</label>
        <input type="number" name="cantidad">
        <button type="submit">Enviar</button>
    </form>
</body>
</html>
<?php
/*
En una tienda de ropa hay descuento del 35% en todos sus productos, 
debes realizar una función que reciba el valor de cada producto y le reste el 35%
 para mostrar luego su valor original y en cuánto queda su nuevo valor a pagar.
*/
?>
<form action="proceso.php" method="get">
<?php
$cantidad = $_GET['cantidad'];

for ($i = 0; $i < $cantidad; $i++) { ?>

    <label for="">Producto <?= $i + 1 ?>:</label><br>
    <input type="number" name="producto<?= $i ?>"> <br><br>
    
<?php }
?>
<button type="submit">Enviar</button>
</form>
<?php

$productos = $_GET; // Obtenemos el valor de todos los productos
echo '<br>';

//
function descuento($productoArray)
{
    //Obtenemos
    $productoDescuento = array(); //Creamos un array el cual le es asignado el valor de todos los productos

    for ($i = 0; $i < count($productoArray); $i++) {
        //Con la función count sabremos cuantos valores tiene el array

         //Operación la cual obtiene el descuento de todos los productos, significa que su valor inicial será remplazado
        $productoDescuento['producto'. $i] = $productoArray['producto' . $i]-($productoArray['producto' . $i] * 0.35);

        //Imprimimos el valor del producto con y sin el descuento
        echo 'Producto ' . ($i + 1) .
        "<br>Valor del producto inicial: ". $productoArray['producto'.$i]."<br> ".
        "Valor del total a pagar con el descuento aplicado: ".$productoDescuento['producto' . $i] .
            '<br><br>';
    }
}

descuento($productos);

De mayor a menor

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Index</title>
</head>
<body>
    <form action="ejercicio4.php" method="get">
        <label for="cantidad">Cantidad de productos:</label>
        <input type="number" name="cantidad">
        <button type="submit">Enviar</button>
    </form>
</body>
</html>
<?php

$cantidad = $_GET['cantidad'];
//Obtenemos la cantidad de productos por método GET
?>
<form action="proceso.php" method="get">
<?php for ($i = 0; $i < $cantidad; $i++) { ?>
    <legend style="font-size: 25px; font-weight: bold;"> producto <?= $i +
        1 ?></legend> 
    <fieldset>
    <label for="">Ancho</label><br><br>
    <input type="number" name="ancho<?= $i ?>"><br>
    <label for="">Alto</label><br><br>
    <input type="number" name="alto<?= $i ?>"><br>
    </fieldset>
    
 <br>
 <br>
 
    <?php } ?>
    <button type="submit">Enviar</button>
</form>    
<?php
$cantidad = $_GET;

$sizeArray = array();

for($i = 0; $i < (count($cantidad)/2);$i++){
    $sizeArray[$i] = $cantidad['ancho'.$i] * $cantidad['alto'.$i];  
}

array_multisort($sizeArray,SORT_DESC);//Está funcion permite ordenar los elementos de un array. en este caso de forma DESC

$i = 1;

foreach($sizeArray as $s){
    echo "Producto $i mide: $s <br>";
    $i++;
}
De mayor a menor, lo hice de esta manera. ```js = 2) { for ($i = 0; $i < count($subarray) - 1; $i++) { $resultado *= $subarray[$i] * $subarray[$i + 1]; } $arrayNuevo[] = $resultado; } } rsort($arrayNuevo); print_r($arrayNuevo); ?> ```\= 2) {        for ($i = 0; $i < count($subarray) - 1; $i++) {            $resultado \*= $subarray\[$i] \* $subarray\[$i + 1];        }        $arrayNuevo\[] = $resultado;    }} rsort($arrayNuevo);print\_r($arrayNuevo);?>
Comparto mis soluciones: ![](https://static.platzi.com/media/user_upload/Imagen%20de%20WhatsApp%202023-11-25%20a%20las%2023.08.36_d02ae0c5-c8208b37-f80c-4b10-a773-7166b840b9f4.jpg)![](https://static.platzi.com/media/user_upload/Imagen%20de%20WhatsApp%202023-11-25%20a%20las%2023.07.28_f9217bea-4552253e-b0a7-4b1f-9fe1-b47cee4f216c.jpg)![](https://static.platzi.com/media/user_upload/Imagen%20de%20WhatsApp%202023-11-25%20a%20las%2023.07.07_c3381559-e0f2abf3-4954-415f-b023-a831aa81b538.jpg)![](https://static.platzi.com/media/user_upload/Imagen%20de%20WhatsApp%202023-11-25%20a%20las%2023.08.45_0a78389e-58e5a403-de38-4a97-84ad-c4e197c356f2.jpg)
```js array( "Ancho" => 50, "Alto" => 70 ), "Pantalones" => array( "Ancho" => 60, "Alto" => 80 ), "Zapatos" => array( "Ancho" => 90, "Alto" => 100 ), "Vestidos" => array( "Ancho" => 110, "Alto" => 120 ), "Accesorios" => array( "Ancho" => 130, "Alto" => 140 ) ); arsort($productos); print_r($productos); echo"\n"; ```\ array( "Ancho" => 50, "Alto" => 70 ), "Pantalones" => array( "Ancho" => 60, "Alto" => 80 ), "Zapatos" => array( "Ancho" => 90, "Alto" => 100 ), "Vestidos" => array( "Ancho" => 110, "Alto" => 120 ), "Accesorios" => array( "Ancho" => 130, "Alto" => 140 )); arsort($productos);print\_r($productos);echo"\n";

Identificar un problema: descuento del 35% en todos sus productos, mostrar luego su valor original y en cuánto queda su nuevo valor a pagar.

Leer nuevamente el problema: En una tienda de ropa hay descuento del 35% en todos sus productos, debes realizar una función que reciba el valor de cada producto y le reste el 35% para mostrar luego su valor original y en cuánto queda su nuevo valor a pagar.

Identifica entradas: precio y producto
Identificar salidas: valor original y en cuánto queda su nuevo valor a pagar.

Proceso:
1 - Definir los productos y su valor
2 - Analizar el calculo
descuento = valor * 0.35
precio_descuento = valor - descuento
precio_original = valor

<?php

$productos = array(
    "Electrodomestico" => 25,
    "cocina" => 24,
    "mantenimiento" => 30,
    "tecnología" => 15
);

function calc($productos){
//    global $productos;
    foreach ($productos as $product => $valor) {
        $discount = ($valor * 0.35);
        $new_price = $valor - $discount;
        $origin = $valor;
        echo "$ Tu descuento tu $product es de $new_price y tu precio original es de $$origin USD \n";
    }
}

calc($productos);

Descuentos a la vista

<?php
$productosDescuentos = [
    'Remera' => [
        'Precio' => 1256,
        'Descuento' => 35
    ],
    'Pantalon' => [
        'Precio' => 256,
        'Descuento' => 35
    ],
    'Camisa' => [
        'Precio' => 4250,
        'Descuento' => 20
    ],
    'Zapatillas' => [
        'Precio' => 1500,
        'Descuento' => 35
    ],
];

foreach ($productosDescuentos as $nombreProducto => $detallesProducto) {
    $descuento = $detallesProducto['Precio'] * $detallesProducto['Descuento'] / 100;
    $precioConDescuento = $detallesProducto['Precio'] - $descuento;
    echo "El producto $nombreProducto tiene un descuento del " . $detallesProducto['Descuento'] . "% y pasa de valer " . $detallesProducto['Precio'] . " a " . $precioConDescuento . ".<br>";
}
?>

De mayor a menor

<?php
$productos = [
    'Remera' => [
        'ancho' => 30,
        'alto' => 18
    ],
    'Remera2' => [
        'ancho' => 25,
        'alto' => 13
    ],
    'Remera3' => [
        'ancho' => 27,
        'alto' => 17
    ],
    'Remera4' => [
        'ancho' => 21,
        'alto' => 19
    ],
];

function calcularArea($producto) {
    return $producto['ancho'] * $producto['alto'];
  }

$areaProductos = array_map("calcularArea", $productos);

asort($areaProductos);


foreach ($areaProductos as $producto => $area) {
    echo "$producto: $area cm<sup>2</sup><br>";
  }
?>

Ejercicios de Mayor a Menor:

index.html

<html lang="es">

<head>
	<title>Ordenar de mayor a menor</title>
	<meta charsett="UTF-8" />
</head>

<body>

	<pre>
		<strong>Ordenar los productos por el tama�o de cada producto</strong>
	</pre>

	<form action="server.php" id="form_input_number_products" method="post">
		<label for="input_number_products">
			<strong>Ingrese el n�mero de productos a mostrar: </strong>
		</label>
		<input type="number" id="input_number_products" name="number_products" required/>
		<button type="submit">Enviar</button>
	</form>
</body>

</html>

server.php

<?php

header('Content-Type: text/html; charset=UTF-8');
$number_products = $_POST["number_products"];
$form = "<form action='proceso.php' method='post'>";
$div = "<div>";

for($i = 1; $i <= $number_products; $i++) {
	$p = "<p>Dimensiones de los productos: #$i</p>";
	$nombre_producto = "<label><strong>Nombre del producto:</strong></label>";
	$input_nombre_producto = "<input type='text' name='input_nombre_producto[]' required id='input_nombre_producto' />";
	$label_ancho = "<label for='input_ancho'><strong>Ingrese el ancho:</strong></label>";
	$input_ancho = "<input type='number' name='input_ancho[]' required id='input_ancho'/>";
	$label_largo = "<label for='input_largo'><strong>Ingrese el largo:</strong></label>";
	$input_largo = "<input type='number' name='input_largo[]' id='input_largo' required />";
	$salto_linea = "<br/>";
	$div .= $p . $nombre_producto . $input_nombre_producto . $label_ancho . $input_ancho . $label_largo . $input_largo .  $salto_linea;
}

$button_submit = "<button type='submit'>Enviar</button>";
$div_cierre = "</div>";
$form_cierre = "</form>";
echo $form . $div . $button_submit . $div_cierre . $form_cierre;
?>

proceso.php

<?php

$nombre_producto = $_POST['input_nombre_producto'];
$dimensiones_ancho = $_POST['input_ancho'];
$dimensiones_largo = $_POST['input_largo'];

$dimensiones = array();

for($i = 0; $i < count($dimensiones_ancho); $i++) {
	$temp = ($dimensiones_ancho[$i] * $dimensiones_largo[$i]);
	$dimensiones[$nombre_producto[$i]] = $temp;
}

//Utilizamos use, para importar la variable o el array dentro de la funcion para poderla usar dentro de la funcion
uksort($dimensiones, function($a, $b) use ($dimensiones):int {
	return $dimensiones[$a] <=> $dimensiones[$b];
});

$div = "<div>";
echo "<p><strong>Dimensiones ordenadas de mayor a menor</strong></p>";
$keys = array_keys($dimensiones);
for ($i = count($keys) - 1; $i >= 0; $i--) {
    $key = $keys[$i];
    $output = "<p>El producto <strong>{$key}</strong> tiene la dimension: {$dimensiones[$key]}</p>";
    $div .= $output;
}

$div_cierre = "</div>";
echo $div . $div_cierre;
?>```



DE MAYOR A MENOR

index.php

<!DOCTYPE html>
<html lang="es">

    <?php
        session_start();
        if (!isset($_SESSION['almacen'])) {
            $_SESSION['almacen'] = array();
        }
    ?>

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Productos ordenados</title>
</head>

<body>
    <h1>Lista de productos ordenados.</h1>
    <table style="border-collapse: collapse; width: 100%;">
        <thead style="background-color: #dddddd;">
            <tr>
                <th style="border: 1px solid #dddddd; text-align: left; padding: 8px;">Nombre</th>
                <th style="border: 1px solid #dddddd; text-align: left; padding: 8px;">Ancho</th>
                <th style="border: 1px solid #dddddd; text-align: left; padding: 8px;">Alto</th>
            </tr>
        </thead>
        <tbody>
        <?php foreach ($_SESSION['almacen'] as $nombre => $datos): ?>
        <tr>
            <td><?= htmlspecialchars($nombre) ?></td>
            <td><?= htmlspecialchars($datos['ancho']) ?></td>
            <td><?= htmlspecialchars($datos['alto']) ?></td>
        </tr>

        <?php endforeach ?>
        </tbody>
    </table>
    </br>
    <hr>
    </br>
    <fieldset>
        <legend>Artículo</legend>
        <form action="main.php" method="get">
            <label for="nombre">Nombre del artículo:</label>
            <input type="text" id="nombre" name="nombre">

            <label for="ancho">Ancho:</label>
            <input type="text" id="ancho" name="ancho">

            <label for="alto">Alto:</label>
            <input type="text" id="alto" name="alto">

            <input type="submit" value="Submit">
        </form>
    </fieldset>
</body>

</html>

++main.php++


<?php

session_start();
if (!isset($_SESSION[‘almacen’])) {
$_SESSION[‘almacen’] = array();
}

function esta_vacio($nombre, $ancho, $alto)
{
if (isset($nombre, $ancho, $alto) && $nombre != “” && $ancho != “” && $alto != “”) {
return true;
} else {
return false;
}
}

function cmp($a, $b) {
$tamañoA = $a[‘ancho’] * $a[‘alto’];
$tamañoB = $b[‘ancho’] * $b[‘alto’];
if ($tamañoA == $tamañoB) {
return 0;
}
return ($tamañoA < $tamañoB) ? -1 : 1;
}

if (esta_vacio($_GET[‘nombre’], $_GET[‘ancho’], $_GET[‘alto’])) { // Comprueba si están vacios y != null
$nombre = $_GET[‘nombre’];
$ancho = (float) $_GET[‘ancho’];
$alto = (float) $_GET[‘alto’];
if (is_numeric($ancho) && is_numeric($alto)) {
// Comprobar si la clave existe ya en el array.
if (array_key_exists($nombre, $_SESSION[‘almacen’])) {
echo “El producto ingresado ya existe”;
} else {
$_SESSION[‘almacen’][$nombre] = array(‘ancho’ => $ancho, ‘alto’ => $alto);
uasort($_SESSION[‘almacen’], ‘cmp’);
echo “Artículo agregado con éxito.” . “\n”;
}
} else {
echo “Los campos ancho y alto deben ser numéricos.”;
}
} else {
echo “Todos los campos deben contener algún dato.”;
}

?>

</br>
</br>

<a href=“index.php”>Volver</a>



DESCUENTOS A LA VISTA

HTML

<!DOCTYPE html>
<html lang="es">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Descuentos a la vista</title>
</head>

<body>
    <h1>Productos de software</h1>
    <table>
        <thead>
          <tr>
            <th>Id</th>
            <th>Nombre Producto</th>
            <th>Precio producto (€)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>1</td>
            <td>Camisa</td>
            <td id="precio_1">10.50</td>
          </tr>
          <tr>
            <td>2</td>
            <td>Pantalón</td>
            <td id="precio_2">19.99</td>
          </tr>
          <tr>
            <td>3</td>
            <td>Zapatos</td>
            <td id="precio_3">20.80</td>
          </tr>
        </tbody>
      </table>
    <div>
        <br>
        <form action="main.php" method="get">
            <label for="descuento">Introduzca su descuento (%):</label>
            <input type="text" name="descuento">
            <button type="submit">Enviar</button>
        </form>
    </div>

</body>

</html>

PHP

<?php

function descuenta($precios, $porcentaje)
{
    $precios_con_descuentos = array();
    // $precios_float = array();

    foreach ($precios as $precio) {
        $precio = trim($precio);
        $precio_float = floatval($precio);
        $descuento = ($precio * $porcentaje) / 100;
        $precios_con_descuentos[] = $precio_float - $descuento;
    }
    return $precios_con_descuentos;
}

$precios_ArrStr;
$precios_str = array();
$precios = array();


$descuento = (int) $_REQUEST['descuento'];

// Leer el contenido del archivo html
$html = file_get_contents('index.html');

// Extraer los precios de los artículos utilziando una expresión regular.
$pattern = '/<td id="precio_\d+">(\d+\.\d+)/';
preg_match_all($pattern, $html, $matches);


// Obtener los precios encontrados
$precios_ArrStr = $matches[1];


// Extraer los nombres de los artículos utilziando una expresión regular.
$pattern = '/<td>([^<]+)<\/td>\s*<td id="precio_\d+">/';
preg_match_all($pattern, $html, $matches);

// Obtener los nombres encontrados
$nombres = $matches[1];


// Llamar a la función para aplicar el descuento a cada cantidad.

$precios_con_descuentos = descuenta($precios_ArrStr, $descuento);

?>
</br>
</br>

<table border="1">
    <tr>
        <th>Precio final <?= $nombres[0] ?></th>
        <th>Precio final <?= $nombres[1] ?></th>
        <th>Precio final <?= $nombres[2] ?></th>
    </tr>
    <tr>
        <td><?= $precios_con_descuentos[0] ?></td>
        <td><?= $precios_con_descuentos[1] ?></td>
        <td><?= $precios_con_descuentos[2] ?></td>
    </tr>
</table>
<a href="index.html">Volver a principal</a>

Mi código para ordenar de menor a mayor las prendas en 3 archivos

main.php

<?php

$titulo = "<h2>Ingresar la gantidad de productos</h2>";
$form = "<form action='ancho_alto.php'>";
$imput = "<input type='text' name='producto'><br>";
$button = "<button type='submit'>Enviar</button>";
$formClose = "</form>";

echo $titulo.$form.$imput.$button.$formClose;

?> 

alto_ancho.php

<?php
$form = "<form action='orden.php'>";

for ($i=0; $i < $_REQUEST['producto']; $i++) { 
    $form .= "Producto " .$i+1 ."<input type='text' name='nombre".$i."'>
    <input type='text' name='ancho".$i."'>
    <input type='text' name='alto".$i."'>
    <br>";
}

$titulo = "<h1>Introducir nombre, ancho y alto</h1>";
$button = "<button type='submit'>Enviar</button>";
$formClose = "</form>";

echo $titulo.$form.$button.$formClose;

?>

orden.php

<?php
$tamaño = array();

for ($i=0; $i < count($_REQUEST)/3; $i++) { 
    $tamaño[$_REQUEST['nombre'.$i]] = $_REQUEST['ancho'.$i] * $_REQUEST['alto'.$i];
}

asort($tamaño);

echo "<h2>El orden es el siguiente</h2>";

foreach ($tamaño as $prenda => $area) {
    echo $prenda . " que tiene un tamaño de " . $area . "<br>";
}

?>

Para el reto descuentos decidí hacer uso de arreglos anidados.
Sigo sin entender como rallos compartir imágenes así que dejo link a mi Gdrive.

https://drive.google.com/file/d/1oizZ5ugWpIxXp0MpaWOkbh2n_VwSRmQV/view?usp=share_link

https://drive.google.com/file/d/17zX7viMNdgYr_OzOpOJd4-gvNj6NcJnE/view?usp=share_link

Ese es todo el código del reto del descuento del 35%
![](

<?php

$prendasRopa = array(
    array(
        "articulo" => 'pantalon',
        "precio" => 8000,
    ),
    array(
        "articulo" => 'camisa',
        "precio" => 4500,
    ),
    array(
        "articulo" => 'polera',
        "precio" => 3500,
    ),
    array(
        "articulo" => 'zapatos',
        "precio" => 10000,
    ),
    
);

$largoArray = count($prendasRopa);

for ($i=0; $i < $largoArray; $i++) { 
    $prenda = $prendasRopa[$i];
    $oferta = $prenda["precio"] - (($prenda["precio"] * 35) / 100);
    echo "El precio normal del artículo *".$prenda["articulo"].
    "* es $". $prenda["precio"]."<br>";
    echo "El precio con descuento del artículo *".$prenda["articulo"].
    "* es $". $oferta."<br>";
    echo "<br>";
}

?>

Mi código

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>
	<?php
		if (isset($_POST['cantidadProducots']) && !empty($_POST['cantidadProducots']))
		{
	?>
			<h1>Orde de los productos por tamaño</h1>
			<form action="" method="POST">
				<h3>Ingrese el ancoho y alto del producto</h3>
				<?php for ($i=0; $i <= $_POST['cantidadProducots']-1 ; $i++)
					{
						echo "Introdusca el ancho <input type='number' name='ancho{$i}' style='margin-top:10px;'> 
							y el alto <input type='number' name='alto{$i}' style='margin-top:10px;'> <br/>";
					}
				?>
				<input type="submit" style="margin-top:20px;">
			</form>
	<?php
		}
		elseif( (isset($_POST['ancho0']) && !empty($_POST['ancho0'])) and (isset($_POST['alto0']) && !empty($_POST['alto0'])) )
		{
			$area = [];
			for ($i=0; $i < count($_REQUEST) / 2; $i++) { 
				array_push($area, $_POST['ancho'.$i] * $_POST['alto'.$i]);
			}

			echo "<h3> El orde de los productos es correcto es </h3>";

			foreach ($area as $value) {
				echo $value . "<br/>";
			}
		}
		else
		{
	?>
		<form action="" method="POST">
			<h3>Ingrese la cantidad de productos</h3>
			<input type="number" name="cantidadProducots">
			<input type="submit" style="margin-top:20px;">
		</form>
	<?php
		}
	?>

</body>
</html>

Mi respuesta al segundo ret

<<?php

$productos = array(

    'Camisa1' => array(
        'material' => "Dril",
        'tamano'  => 38,
        'talla'  => "M",
        'color'=> "Negro"
    ),
    'Camisa2' => array(
        'material' => "Seda",
        'tamano'  => 28,
        'talla'  => "S",
        'color'=> "Verde"
    ),

    'Camisa3' => array(
        'material' => "Algodón",
        'tamano'  => 30,
        'talla'  => "S",
        'color'=> "Verde"
    ),

    'Pantalon1' => array(
        'material' => "Jean",
        'tamano'  => 32,
        'talla'  => "M",
        'color' => "Azul"
    ),

    'Pantalon2' => array(
        'material' => "Dril",
        'tamano'  => 34,
        'talla'  => "L",
        'color' => "Azul"
    ),
);


function ordenar_arreglo(&$productos, $col, $order = SORT_ASC)
{
    $arrAux = array();
    foreach ($productos as $key=> $row) {
        $arrAux[$key] = is_object($row) ? $arrAux[$key] = $row->$col : $row[$col];
        $arrAux[$key] = strtolower($arrAux[$key]);
    }
    array_multisort($arrAux, $order, $productos);
}


ordenar_arreglo($productos, 'tamano', $order = SORT_DESC);

/*
echo "<pre>";
print_r($productos);
echo "</pre>";
*/

foreach ($productos as $producto => $detalles) {
    echo "<h1> $producto </h1>";

    foreach ($detalles as $tamano => $valor) {
        echo "<p> $tamano:$valor </p>";
    }
}
> 

Descuentos a la vista

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <label>Ingresar precio del producto</label>
    <form action="principalTienda.php">
        <input type="text" name="precio" value="0">
        <input type="submit" value="Enviar">
    </form>

    <br><br><br><br><br>
    <?php


    $precio = $_REQUEST["precio"];

    descuento($precio);

    function descuento($precio)
    {

        if (is_numeric($precio)) {
            if ($precio == 0) {


                echo "Ingrese el precio del producto";
            } else if ($precio != 0) {
                $precio = $precio * .65;
                echo "El precio del producto ya con el descuento es: " . $precio;
            }




        } else {
            if ($precio == "") {
                echo "";
            } else {
                echo "Favor de ingresar un valor valido.";
            }


        }

    }




    ?>


</body>

</html>

De mayor a menor

Main1.php

<label for="">Ingrese cantidad de articulos a ordenar</label>
<br>
<br>
<form action="sort.php">
    <input type="text" value="0" name="cantidad">
    <input type="submit" value="enviar">
</form>


<?php

$cantidad = $_REQUEST["cantidad"];




$form = " <form action='sorting.php'>";
for ($i = 0; $i < $cantidad; $i++) {
    $form .= "Ingrese nombre del producto " . $i + 1 . ": <input type='text' name='producto" . $i. "'> " .
        " <br><br>Ingrese la altura del producto " . $i + 1 . ": <input type='text' name='alturaProducto" . $i. "'>" .
        " <br><br>  Ingrese el ancho del producto " . $i + 1 . ": <input type='text' name='anchoProducto" . $i . "'>" .
        "<br><br><br>";
    ;
}
$button = "<button type='submit'>Enviar</button>";
$formCierre = "</form>";

echo $form . $button . $formCierre;

?>

sorting.php

<?php


$arrayNombres = array();
$arrayAreas = array();
$arrayUnsorted = array();


for ($i = 0; $i < count($_REQUEST); $i++) {

    if (isset($_REQUEST["producto" . $i])) {

        $nombre = $_REQUEST["producto" . $i];
        array_push($arrayNombres, $nombre);

    }



    if (isset($_REQUEST["alturaProducto" . $i])) {

        $alturaProd = $_REQUEST["alturaProducto" . $i];
        echo $alturaProd;
    }

    if (isset($_REQUEST["anchoProducto" . $i])) {
        $anchoProd = $_REQUEST["anchoProducto" . $i];
        echo " x " . $anchoProd;

        $area = $alturaProd * $anchoProd;


        echo "<br>";
        echo "el area del producto $nombre  es: $area";
        array_push($arrayAreas, $area);


        echo "<br>";
        echo "<br>";
        echo "<br>";
    }


}



$arrayUnsorted = array_combine($arrayNombres, $arrayAreas);
arsort($arrayUnsorted);

print_r($arrayUnsorted);
echo "<br>";
foreach ($arrayUnsorted as $x => $x_value) {
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}
?>


Mi primera versión de descuentos a la vista

<?php

$prendas = array(
    "Pantalon" => 200,
    "Camisa" => 125,
    "Camiseta" => 100,
    "Pantaloneta" => 150,
    "Vestido" => 300
);

function prendasDescuento($prendas, $pDescuento)
{
    system('clear');
    $titulo1 = "Prendas";
    $titulo2 = "Totales";
    $valorTotal = 0;
    $valorDescuentoT = 0;
    $valorNetoT = 0;
    echo str_pad($titulo1, 50, "=", STR_PAD_BOTH)."\n";
    foreach ($prendas as $prenda => $precio) {
        $valorTotal += $precio;
        $vDescuento = $precio*($pDescuento/100);
        $valorDescuentoT +=$vDescuento;
        $valorNetoT += $precio -$vDescuento;
        echo $prenda. " " . $precio . " Descuento: ".$vDescuento .
        " Valor neto: ". $precio -$vDescuento. "\n";
    }
    echo str_pad($titulo2, 50, "=", STR_PAD_BOTH)."\n";

    echo "Valor total: " . $valorTotal . "\n"
    . "Valor descuento: " . $valorDescuentoT. "\n"
    . "Neto a pagar: " .$valorNetoT. "\n"
    . "Porcentaje de descuento: ". $pDescuento."%";
}

prendasDescuento($prendas, 35);

Primer Ejercicio Descuento de 35
primera pantalla descuentos.php

<?php



echo "<form action = 'resultadodes.php' method='POST' >
<label for='precio'>Ingrese el precio Original </label>
<input type = 'text' id='precio' name ='precio'>
<br>
<button type='submit'>Enviar</button>

</form>"

?>

Segunda pantalla resultados de descuentos

<?php

$costosindescuento = $_POST['precio'];

function descuento($precio){
    $total = $precio - ($precio * .35 );
    return $total;
}


echo "El precio del Articulo es: $".$costosindescuento."<br>". 
"Con el descuento del 35% el precio queda de la siguiente manera : $".descuento($costosindescuento);

echo "<br>";

echo "<a href='descuentos.php'><button>Ingresar otro articulo</button></a>";

Esta fue la manera en la que resolví el primer ejercicio usando una función.

<?php

$cantidadProductos = (int)readline("Ingrese la catidad de productos comprados: ");

function descuento($cantidadProductos)
{
    $precioProductos = 0;
    for ($i = 1; $i <= $cantidadProductos; $i++) {
        $precioProductos += (int)readline("Ingrese el producto $i: ");
    }

    $descuento = ($precioProductos * 0.35);
    $PrecioTotalConDescuento = ($precioProductos - $descuento);

    echo "El precio de los productos comprados sin descuento es de: $$precioProductos. \n";
    echo "Tiene descuento del 35% \n";
    echo "El precio a pagar por los productos comprados con descuento es de: $$PrecioTotalConDescuento. \n";
}

echo descuento($cantidadProductos);

Ejercicios de practica

Descuentos a la vista

<?php
 /**
  * @author simoesco
  */

function desc35($precio)
{
    $desc = $precio * 0.65;
    return $desc;
}

$precio = (int)readline('Ingrese el precio original: ');
echo "El precio con descuento es $" . desc35($precio);
?>

De mayor a menor

<?php
 /**
  * @author simoesco
  */

# Clase de Productos
class Producto {
    public $ancho;
    public $alto;
    public function __construct($ancho, $alto) {
        $this->ancho = $ancho;
        $this->alto = $alto;
    }
    public function area() {
        return $this->ancho * $this->alto;
    }
    static function cmp($a, $b) {
        $a_num = $a->area();
        $b_num = $b->area();
        return $b_num - $a_num;
    }
}

# Pregunta la cantidad de productos a ingresar
$n = (int)readline('Cuantos productos desea ingresar?: ');
# Arreglo de productos
$productos = array();

# Por cada producto pregunta su ancho y alto, y lo agrega al arreglo
$count = 0;
for($i = 0; $i < $n; $i++){
    echo "-----------------------------------". "\n";
    echo "Producto " . ++$count . "\n";
    $ancho = (int)readline('Ingrese el ancho: ');
    $alto = (int)readline('Ingrese el alto: ');
    $product = new Producto($ancho, $alto);
    array_push($productos, $product);
}

# Ordena el arreglo con la funcion de comparacion
usort($productos, [Producto::class, "cmp"]);

# Imprime el arreglo
$count = 0;
echo "-----------------------------------". "\n";
echo "Productos ordenados (Orden Descendente)". "\n";
foreach ($productos as $p) {
    echo "Producto ". ++$count . ": (". $p->ancho . ", ". $p->alto . ")\n" ;
}
?>
$products = ['mate' => 10, 'mistral' => 8.95, 'jabon-liquido' => 3];
#print_r($products);

function sales($products){
foreach($products as $producto){
$descount = $producto - ($producto * 0.35);
$descount = round($descount,1);
echo “OFERTAZA \n”;
echo "Este es era el precio original " . $producto . “, y este el de la super oferta “. $descount.”\n”;
}
}
sales($products);

<code> 
<?php
function descuento ($total) {
    return round((35 * $total) / 100,2);
}

$products = ["articulo 1" => 300,"articulo 2" => 500];

echo "<h1>Toda la tienda esta con el 35% de descuento.</h1>";

foreach ($products as $name => $price) {
    $ahorra = descuento($price);
    $total = $price - $ahorra;
    echo "$name price $$price - $ahorra after discount $$total <br>";
}
?>

Se que no es lo mejor, pero es trabajo honesto 😁

<?php
function descuento($descuento){
$productos = array(
  'zapatos' => '156000',
  'pantalon' => '60000',
  'camisa' => '30000',
  'gorra' => '50000',
);
  foreach ($productos as $key => $value) {
    $tot_des=($value*($descuento/100));
    echo $key. " total: ".$value.PHP_EOL;
    echo $key. " con descuento de $descuento% : $".($value-$tot_des).PHP_EOL;
  }
}
descuento(35);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
        <form action="view_product.php" method="post">    
            <label for="cant">Ingrese Cant. Productos</label><br>
            <input type="text" name="cant"><br>     
            <button type="submit">Enviar</button>   
        </form>
    </div>
</body>
</html>
<?php

$cant_product=$_POST['cant'];


$form = "<form action='analisis_producto.php'>";

for ($i=0; $i <$cant_product; $i++) { 
   
    $form .="Ingrese valor producto  ".$i.": "."<input type='number' name='valor".$i."'>"."<br>";

}

$input = "<label for='porcentaje'>Ingrese Porcentaje Desc.</label>
            <input type='text' name='porcentaje'><br> ";
$button = "<button type='submit'>Enviar</button>";
$form_cierre = "</form>";

echo $form.$input.$button.$form_cierre;    

?>
<?php

//print_r($_REQUEST."<br>");

$cant_products=$_REQUEST;
$porcent=$_REQUEST['porcentaje'];



function porcentaje ($cant_products, $porcent){

    echo"El porcentaje de descuento es de: ".$porcent."<br>";
    foreach ($cant_products as $valor ) {
        $total = $valor-($valor*$porcent/100);
        echo "El valor total menos el descuento es de: ".$total."<br>";
    }

}

echo porcentaje($cant_products,$porcent);

De mayor a menor :

<?php

do {
$articulo = readline("Digite nombre del Articulo: ");
$ancho = (int) readline("Digite Ancho del Articulo: ");
$alto = (int) readline("Digite Alto del Articulo: “);
$continuar=readline(”¿Continuar ? : (S/N) ");
$superficie = $ancho * $alto;
$productos[$articulo] = $superficie;

} while ($continuar ==“S”);

arsort($productos,SORT_DESC);
print_r($productos);
?>

Descuento a la Vista :

<?php
$articulos = array(
“zapatos”=>300000,
“Camisa”=>150000,
“Pantalon”=>180000,
“Medias”=>25000,
“Calzoncillos”=>22000
);

function descuento($precio,$porcentaje){
return $precio*$porcentaje/100;
}
$pordes=(int)readline(“Digite Porcentaje de Descuento: “);
echo “Articulo Precio Descto Neto” .”\n\n”;
foreach ($articulos as $key => $value) {
$descuento=descuento($value,$pordes);
echo "$key $value $descuento ". $value-$descuento . “\n”;
}

?>

Ejercicios de práctica

🐘Durante este ejercicio descubrí el uso de POST, que sirve para llevar datos del HTML al PHP sin irse a otra página, lo que hizo más fácil los ejercicios. Además, agregué Bootstrap como CSS rápido para que no se viera tan feo.

💲 Descuentos a la vista

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title><!-- CSS only -->
  <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
    integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
  <style>
  body {
    padding: 50px;
  }
  </style>
</head>

<body>
  <div>
    <h1>Calcula tus descuentos!</h1>
    <form method="post" id="formulario de descuentos">
      <label for="precioSinDescuento">Inserta el precio del producto para calular tu descuento del 35%</label>
      <input type="number" name="precioSinDescuento" id="precioSinDescuento">
      <input type="submit" value="Calcular Descuento">
    </form>
    <?php
      if(array_key_exists('precioSinDescuento', $_POST)) {
        echo "<p>El precio de su producto con el 35% de descuento es: "
        . imprimirPrecioConDescuento($_POST['precioSinDescuento'])
        . "</p>"; // llamar a la funcion precio con descuento
      }
      function imprimirPrecioConDescuento($precio) {
        $precio = (int) $precio;
        $precioConDescuento = ($precio / 100) * 75;
        return $precioConDescuento;
      }
    ?>
  </div>
</body>

</html>

↘️ De mayor a menor

Este tiene dos archivos, uno donde se ingresan los valores de los artículos y otra donde se muestra la lista ya ordenada.

Hoja 1

<!DOCTYPE html>
<html lang="es">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title><!-- CSS only -->
  <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
    integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
  <style>
  body {
    padding: 50px;
  }

  #entradasDeProducto {
    width: 500px;
    display: grid;
    grid-template-columns: 60% 40%;
    gap: 10px;
  }
  </style>
</head>

<body>
  <div>
    <h1>Ordena los productos de mayor a menor</h1>
    <form method="post" id="formularioDeCantidad">
      <label for="cantidadDeProductos">Ingresa la cantidad de productos a guardar en la lista: </label>
      <input type="number" name="cantidadDeProductos" id="cantidadDeProductos">
      <input type="submit" value="Enlistar Productos">
    </form>
    <?php
    //Debugger
    // Variables
    $form = "<form action='list.php' id='entradasDeProducto'>";
    $button = "<button type='submit'>Calcular Orden</button>";
    $formClosing = "</form>";
    // form creator
    if (array_key_exists("cantidadDeProductos", $_POST)) {
      for ($i=0; $i < $_POST["cantidadDeProductos"]; $i++) {
        $productNumber = $i + 1;
        $form .= "<label for='nombreProducto$productNumber'>Inserta el nombre del producto $productNumber</label>"
        . "<input type='text' name='nombreProducto$productNumber' id='nombreProducto$productNumber'>"
        . "<label for='alturaProducto$productNumber'>Inserta la altura del producto $productNumber</label>"
        . "<input type='number' name='alturaProducto$productNumber' id='alturaDelProducto$productNumber'>"
        . "<label for='anchuraProducto$productNumber'>Inserta la anchura del producto $productNumber</label>"
        . "<input type='number' name='anchuraProducto$productNumber' id='anchuraProducto$productNumber'>";
      }
      echo $form . $button . $formClosing;
    };
    ?>
  </div>
</body>

</html>

Hoja 2

<!DOCTYPE html>
<html lang="es">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title><!-- CSS only -->
  <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
    integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
  <style>
  body {
    padding: 50px;
  }
  </style>
</head>

<body>
  <main>
    <?php
    // debugger
    // variables
    $listaDeProductos_area_menor = array();
    $listaDeProductos_ordenados = array();
    // new array order
    for ($i=0; $i < (count($_REQUEST) / 3); $i++) {
      $listaDeProductos_area_menor += array(
        $_REQUEST["nombreProducto".$i+1] => ($_REQUEST["alturaProducto".$i+1] * $_REQUEST["anchuraProducto".$i+1])
      );
    }
    natsort($listaDeProductos_area_menor);
    $listaDeProductos_area_mayor = array_reverse($listaDeProductos_area_menor, true);
    // new array creator
    $counter=0;
    foreach ($listaDeProductos_area_mayor as $key => $value) {
      $listaDeProductos_ordenados[$counter] = array(
        "nombreDelProducto" => $key,
        "areaDelProducto" => $value
      );
      $counter++;
    }
    ?>
    <h1>
      Lista de productos ordenados
    </h1>
    <p>Esta es la lista de productos ordenados del mayor al menor</p>
    <ol>
      <?php
      foreach ($listaDeProductos_ordenados as $key) {
        echo "<li>".$key['nombreDelProducto']." , ".$key['areaDelProducto']."&quot </li>";
      }
      ?>
    </ol>
  </main>
</body>

</html>

Mi solucion a aportes a la vista:

<?php 

//Recibir el valor de cada producto
//Descontarle 35% a ese valor
//Devolver el precio original junto con el descuento

$ropa = array (
        "Franela Azul" => 40, 
        "Franela Roja" => 45,
        "Franela Verde" => 35,
        "Franela Blanca" => 50,
        "Franela Negra" => 55,
);

function ropa_En_Descuento (array $precios) {
    foreach ($precios as $nombre => $precio) {
        $desc = $precio * 0.35;
        $total = $precio - $desc;
        echo "El precio original de " . $nombre . " es: " . $precio . "\n";
        echo "El precio nuevo con descuento es: " . $total . "\n\n";
    }
}
ropa_En_Descuento($ropa);
?>

Descuento a la vista


$precio = readline("Ingreso el precio a consultar: ");
    function descuento($precio){
        $descuento_1 = 35;
        $porcentaje = ($precio * $descuento_1) / 100 ;

        $precio_final = $precio - $porcentaje;
        echo "El total a pagar aplicando el descuento es de: " . $precio_final;
    }
    descuento($precio);
?>

<!DOCTYPE html>
<html lang=“en”>
<head>
<meta charset=“UTF-8”>
<meta http-equiv=“X-UA-Compatible” content=“IE=edge”>
<meta name=“viewport” content=“width=device-width, initial-scale=1.0”>
<title>Document</title>
</head>
<body><form action="" method=“post”>
<h1>Ingrese el precio del producto: <input type=“text” name=“h” placeholder=“Ingrese el precio del producto”></h1>
<input type=“submit” name=“Enviar”>
</form>
</body>
</html>
<?php

if (isset($_POST[‘Enviar’])){
$precio = $_POST[‘h’];

$resultado = $precio;
echo "<script>alert('El valor original es: ' + $resultado);</script>";
echo "<br>";
$resultador1 = $precio * 0.35;

$resultado2 = $resultado - $resultador1;
echo "<script>alert('Su nuevo precio es: ' + $resultado2);</script>";

}
?>

<?php
//Ordenamiento Productos
$productos=array(
    array(
        "largo"=>3,
        "ancho"=>2,
    ),
    array(
        "largo"=>7,
        "ancho"=>4,
    ),
    array(
        "largo"=>4,
        "ancho"=>5,
    ),
    array(
        "largo"=>4,
        "ancho"=>7,
    ),
);

$i=0;
$productos_ordenados = array();

foreach ($productos as $producto) {
    echo $producto["largo"];
    echo "x";
    echo $producto["ancho"];
    echo "=";
    echo ($producto["largo"]*$producto["ancho"]);
    $productos_ordenados[$i]=($producto["largo"]*$producto["ancho"]);
    $i=$i+1;
    echo "\n";
}

rsort($productos_ordenados,0);
var_dump($productos_ordenados);
?>

<?php

$productos = array('Camiseta','Blusas','Pantalon','Zapatos');
$option="";

$formulario="<form action=‘productos.php’>";
$label="<label> Seleciona el producto a comprar </label> <br><br>";

    $select="<select name='Productos'> <option value=''></option> " ;
                for ($i=0; $i < count($productos); $i++) {     
                   $option.="<option value='$i'> $productos[$i] </option> ";
                }
    $cierre_select="</select>  <br><br>";       
    $submit="<button type='submit'> Enviar</button>";

$cierreformulario="</form>";

echo $formulario.$label.$select.$option.$cierre_select.$submit.$cierreformulario;

?>

<?php

//$product=$_REQUEST[“Productos”];

$porcentajedescuento=35;

$precios= array(‘50000’,‘150000’,‘60000’,‘250000’);

for ($i=0; $i < count($precios); $i++) { 

    if ($_REQUEST["Productos"] == $i) {
        
        $descuento=$precios[$i]-(($precios[$i]*$porcentajedescuento)/100);
        echo"El valor del producto seleccionado es de $precios[$i], y con el $porcentajedescuento % de descuento, queda en un total de $descuento";

        break;
       
    }
}

?>

De mayor a menor:

<?php

$productos = array(
    array("ancho" => 12, "alto" => 100),
    array("ancho" => 65, "alto" => 100),
    array("ancho" => 3, "alto" => 4),
);

while(true){
    $ancho = readline("¿Introduce el ancho del producto?: ");
    echo PHP_EOL;
    $alto = readline("¿Introduce el alto del producto?: ");
    echo PHP_EOL;
    $respuesta = readline("¿Escribe cero si deseas ver los resultados o presiona cualquier otra tecla para seguir introduciendo productos?: ");
    echo PHP_EOL;
    
    array_push($productos, array("alto" => $alto, "ancho"=>$ancho));
    
    if($respuesta == "0") break;
}

$productosOrdenados = ordenarProductos($productos);
array_reverse($productosOrdenados);

var_dump($productosOrdenados);

function ordenarProductos($productos){
    $newArray =  [...$productos];
    usort($newArray, function($current, $other){
        $currentArea = ($current["ancho"] * $current["alto"]);
        $otherArea = ($other["ancho"] * $other["alto"]);
        return $currentArea <=> $otherArea;
    });

    return $newArray;
}

?>

main

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="main2.php" method="POST">
        <label for="cantidad">Ingrese la cantidad de productos</label>
        <input type="text" name="cantidad">
        <button type="submit">Enviar</button>
    </form>    
</body>
</html>

main2

<?php
$cantidad=$_POST["cantidad"];
$form = "<form action=\"main3.php\" method=\"POST\">";
$button= "<button type=\"submit\">Enviar</button>";
$form_close="</form>";
$inputs="";
for ($i=0; $i <$cantidad ; $i++) { 
    $inputs.="<label for=\"alto$i\">Ingrese el alto de un producto</label>
    <input type=\"text\" name=\"alto$i\">
    <label for=\"ancho$i\">Ingrese el ancho de un producto</label>
    <input type=\"text\" name=\"ancho$i\"><br>";
}
echo $form.$inputs.$button.$form_close; 

main3

<?php
$medidas = $_POST;
$productos = array();

for ($i = 0; $i < (int)(count($medidas) / 2); $i++) {
    $tempo = array(
        $medidas["alto" . $i],
        $medidas["ancho" . $i]
    );
    array_push($productos, $tempo);
}
$i = 0;
echo "Productos iniciales <br>";
foreach ($productos as $producto) {
    $i++;
    echo "Producto $i " . "tiene una altura de: " . $producto[0] . " y un ancho de: " . $producto[1]."<br>";
}

echo "Productos ordenados <br>";
usort($productos, "cmp");

foreach ($productos as $producto) {
    $i++;
    echo "Producto $i " . "tiene una altura de: " . $producto[0] . " y un ancho de: " . $producto[1]."<br>";
}

function cmp($a, $b)
{
    $area_a = (int)$a[0] * (int)$a[1];
    $area_b = (int)$b[0] * (int)$b[1];
    if ($area_a == $area_b) {
        return 0;
    }
    return ($area_a < $area_b) ? -1 : 1;
}

les comparto mi solución para el ejercicio de la bodega donde utilizo una tabla en sql para almacenar los datos pero el orden la impresión lo estable una función para arreglos arsort la cual ordena de forma descendente un arreglo.

Hola les comparto mi solucion al ejercicio tienda implemente una tabla para poder almacernar los datos que son cargados
pero los procesos logicos estan en funciones de php

<?php
/Descuentos a la vista
En una tienda de ropa hay descuento del 35% en todos sus productos, debes realizar una función que reciba el valor de cada producto y le reste el 35% para mostrar luego su valor original y en cuánto queda su nuevo valor a pagar.
/
?>
<!DOCTYPE html>
<html lang=“en”>
<head>
<meta charset=“UTF-8”>
<meta http-equiv=“X-UA-Compatible” content=“IE=edge”>
<meta name=“viewport” content=“width=device-width, initial-scale=1.0”>
<title>Cantidad de productos.</title>
</head>
<body>
<form action="./tablaA.php">
<label for=“canpro”>Cantidad de Productos: </label>
<input type=“number” name=“canpro” id= “canpro”>
<button type=“submit”>Sigiente.</button>

</form>

</body>
</html>

<?php

$mayor =array();
$clave =array();


do{

    $ancho = readline("Ingrese el ancho de la caja en centimetros (cm) o escribe 'salir' para terminar: ");

    if($ancho == "salir")
        break;
    
    $alto = readline("Ingrese el alto de la caja en centimetros (cm) o escribe 'salir' para terminar: ");

    array_unshift($clave,"$ancho cm x $alto cm");
    array_unshift($mayor,$ancho*$alto);


    echo "\n";

}while(true);

echo "\n";

$mayor =array_combine($clave,$mayor);

arsort($mayor);

echo "\nEL ORDEN DE LAS CAJAS DE MAYOR A MENOR DIMENSION SON \n";

$cont = 0;
foreach($mayor as $key => $may)
{
    echo "caja $cont => $key \n";
    $cont++;
}

?>

He demorado un poco en el 2do pero me ha gustado los ejercicios.
.
Ejercicio 1
.

// ****************** main.php ******************

<?php

echo "<h1 style='color: red; text-align: center;'>WELCOME TO BERSHKA</h1>";

$clothes = array("raincoat", "sult", "t-shirt", "skirt", "pants", "socks");
$form = "<form action='operation.php'>";

for ($i=0; $i < count($clothes); $i++) { 
    $form .= "The clothe ".$clothes[$i]." ".
    "<input type='number' name='clothe".$i."'>".
    "<br>";
}

$button = "<button type='submit'>Send</button>";
$formClose = "</form>";

echo $form.$button.$formClose;

// ****************** operation.php ******************

<?php

echo "<h1 style='color: red; text-align: center;'>WELCOME TO BERSHKA</h1>";
$clothes = array("raincoat", "sult", "t-shirt", "skirt", "pants", "socks");
$valor = 0;

for ($i=0; $i < count($clothes); $i++) {
    $valor =  $_REQUEST["clothe".$i] - ($_REQUEST["clothe".$i]*0.35);
    echo "Clothe: $clothes[$i] <br> Original price: ".$_REQUEST["clothe".$i]. "&nbsp;&nbsp; Price offer: $valor"."<br>";
}

.
Ejercicio 2
.

// ****************** main.php ******************

<?php

echo "<h1 style='color: red; text-align: center;'>WELCOME TO BERSHKA</h1>";
$clothes = array("raincoat", "sult", "t-shirt", "skirt", "pants", "socks");

$form = "<form action='analizeSize.php'>";

for ($i=0; $i < count($clothes); $i++) { 
    
    $form .= $clothes[$i]."<br>".
    "<input type='nomber' name='size".$i."-h'> &nbsp;".
    "<input type='number' name='size".$i."-w'>".
    "<br>";
}

$button = "<button type='submit'>Send</button>";
$formClose = "</form>";

echo $form.$button.$formClose;

// ****************** analizeSize.php ******************

<?php

echo "<h1 style='color: red; text-align: center;'>WELCOME TO BERSHKA</h1>";
$clothes = array("raincoat", "sult", "t-shirt", "skirt", "pants", "socks");
$valor = 0;
$values = [];

for ($i=0; $i < count($clothes); $i++) {
    $valor =  $_REQUEST["size".$i."-h"] * $_REQUEST["size".$i."-w"] ;
    $values["$clothes[$i]"] = $valor;
}
arsort($values);
for ($i=0; $i < count($values); $i++) {
    echo "Clothe: ".array_keys($values)[$i]. "&nbsp;&nbsp;&nbsp; Size: ".$values[array_keys($values)[$i]]." <br>";
}

Reto 2: De mayor a menor
(Si alguien pudiera decirme si usé buenas prácticas, sería excelente)

<?php

function ordenar () {

    $productos = array(
        "Tablet" => array(
            "Ancho" => 200,
            "Alto" => 100,
        ),
        "Laptop" => array(
            "Ancho" => 700,
            "Alto" => 500,
        ),
        "Movil" => array(
            "Ancho" => 20,
            "Alto" => 100,
        ),
    );

    do {
        
       $productoAdicional = readline("Escribe el nombre del producto: ");

       $anchoProductoAdicional = readline("Escribe el ancho del producto: ");

       $altoProductoAdicional = readline("Escribe el alto del producto: ");

       $productos[$productoAdicional]["Ancho"] = (int)$anchoProductoAdicional;

       $productos[$productoAdicional]["Alto"] = (int)$altoProductoAdicional;

       echo "\n\nProductos desordenados en el almacén: \n";

        foreach ($productos as $nombre => $producto) {
         
            echo "\n" . $nombre . ": ";

            foreach ($producto as $medidas => $value) {
                
                if ($medidas == "Ancho"){
                    $ancho = $value;
                    echo $ancho . " x ";
                }
                if($medidas == "Alto") {
                    $alto = $value;
                    echo $alto . "\n\n";
                }
            }

            $dimension = ($ancho * $alto);
            $productos[$nombre]["Tamaño"] = $dimension;

        }

        $mas = readline("¿Añadir otro? s/n: ");

    } while ($mas == "s");

    function ordenador ($clave) {
        return function ($a, $b) use ($clave) {
            return $b[$clave] - $a[$clave];
        };
    }

    uasort($productos, ordenador('Tamaño'));

    return $productos;
        
}

$productosOrdenados = ordenar();

echo "Los productos ordenados de mayor a menor tamaño deben colocarse así: \n\n";

foreach ($productosOrdenados as $key => $value) {

    echo $key."\n";
}

?>

Ejercicio número 1:

Primero se pide la cantidad de productos, luego se solicitan precios y cantidad a descontar (no sólo al 35%) y finalmente muestra resultados. Todo el código se encuentra dentro del mismo archivo PHP.

<?php
session_start();
echo "<h1>Calculadora de descuentos</h1>";
//primer pantalla
if ($_SESSION["step"] == 0){
    //formulario para pedir la cantidad de productos
    echo "
    <form action='descuentostotal.php'>
        <label for='inputProd'>Cantidad de productos a calcular el descuento</label>
        <input type='text' name='inputProd' id='inputProd'>
        <button type='submit'>Aceptar</button>
    </form>";
    $_SESSION["step"] = 1;
}
else {
    switch($_SESSION["step"]){
        case 1:
            //segunda pantalla
            $_SESSION["total_products"] = $_REQUEST["inputProd"];
            //formulario para pedir el precio de los productos y el descuento
            $form_open = "<form action='descuentostotal.php'>";
            $form_rows = "";
            for($i=0;$i < $_REQUEST["inputProd"];$i++){
                $form_rows .= "
                    <label for='price'>Introduzca el precio de su artículo $</label>
                    <input type='text' name='price".($i)."' id='price' value='0'> <br>";
            };
            $form_close = "
                    <label for='discount'>Introduzca el porcentaje (%) a descontar</label>
                    <input type='text' name='discount' id='discount' value='0'> <label for='discount'>%</label><br>
                    <button type='submit'>Calcular</button>
                </form> <br><br>";
            echo $form_open.$form_rows.$form_close;
            echo ($_SESSION["total_products"]);
            $_SESSION["step"] = 2;
            break;
        case 2:
            //tercer pantalla
            $total_products = $_SESSION["total_products"];
            for($i=0;$i<$total_products;$i++){
                echo "Precio del producto " . ($i+1) . " con descuento: ". 
                ($_REQUEST['price'.($i)] - ($_REQUEST["price".($i)] *  $_REQUEST["discount"]/100)) . "<br>";
            }
            echo "\n"; 
            $_SESSION["step"] = 0;
            break;
    }
}
?>

Segundo reto:
En el segundo le proporcioné directamente el array de valores de productos a la función. El array se imprime en una tabla para poder ver que se ordenó efectivamente. Sobre el tamaño lo solucioné sacando el área para considerar qué objeto es más grande que otro.

<?php
$products = array(
    array (
        "width" => 5.3,
        "height" => 2.1,
    ),
    array (
        "width" => 3.4,
        "height" => 4,
    ),
    array (
        "width" => 6.1,
        "height" => 2.8,
    ),
    array (
        "width" => 3.5,
        "height" => 4.5,
    ),
    array (
        "width" => 4.8,
        "height" => 2.1,
    ),
);

echo"<h1>Productos ordenados</h1>";

//Dibuja la tabla original de productos
$table_forraws = "";
$table_open = "<table><tr><th>Producto</th><th>Ancho</th><th>Alto</th><th>Área ocupada</th></tr>";
for ($i=0;$i<count($products);$i++){
    $table_forraws .= "
        <tr><th>item ".($i+1)."</th><th>" . $products[$i]["width"] . "</th><th>" . $products[$i]["height"] . "</th>
        <th>".($products[$i]["width"]*$products[$i]["height"])."</th></tr>";
};
$table_close = "</table>";
echo $table_open.$table_forraws.$table_close;

//Se realiza un bubblesort sobre el arreglo
$elements = count($products);
//bubblesort
for ($i=0;$i<$elements;$i++){
    for ($j=1;$j<$elements;$j++){
        if (($products[$j-1]["width"]*$products[$j-1]["height"])<($products[$j]["width"]*$products[$j]["height"])){
            $aux_product = $products[$j];
            $products[$j] = $products[$j-1];
            $products[$j-1] = $aux_product;
        }
    }
}
echo "<br><br><br>";
//Dibuja la tabla final de productos
$table_forraws = "";
$table_open = "<table><tr><th>Producto</th><th>Ancho</th><th>Alto</th><th>Área ocupada</th></tr>";
for ($i=0;$i<count($products);$i++){
    $table_forraws .= "
        <tr><th>item ".($i+1)."</th><th>" . $products[$i]["width"] . "</th><th>" . $products[$i]["height"] . "</th>
        <th>".($products[$i]["width"]*$products[$i]["height"])."</th></tr>";
};
$table_close = "</table>";
echo $table_open.$table_forraws.$table_close;

echo "\n";
?>

Mis ejercicios
.
Descuentos a la vista
.

$articulos = array(
    "Remera" => 100,
    "Camisa" => 200,
    "Pantalon" => 1000,
    "Campera" => 25000,
    "Medias" => 50
);

function descuento($productos){
    foreach ($productos as $articulo => $precio){
        echo $articulo . " costaba $" . $precio . " Precio actual $" . ($precio - ($precio * 35 /100)) . "\n";
    }
    echo "Todos nuestros artículos con un 35% OFF \n";

}

descuento($articulos);

De mayor a menor
.
HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Artículos</title>
</head>
<body>
    <h1>Ingresa el Alto y Ancho de tus artículos</h1>
    <form action="reto4.php">
        <label>Artículo 1 </label> <input type="number" name="alto0" placeholder="Alto"> <input type="number" name="ancho0" placeholder="Ancho"> <br/> <br/>
        <label>Artículo 2 </label> <input type="number" name="alto1" placeholder="Alto"> <input type="number" name="ancho1" placeholder="Ancho"><br/> <br/>
        <label>Artículo 3 </label> <input type="number" name="alto2" placeholder="Alto"> <input type="number" name="ancho2" placeholder="Ancho"> <br/><br/>
        <button type="submit"> Enviar </button>
    </form>
</body>
</html>

PHP

$cantidadArticulos = (count($_REQUEST)/2);

$articulos = array();

for ($i=0, $a=1; $i < $cantidadArticulos ; $i++,$a++) { 
    $articulos += ['Artículo '.$a => ($_REQUEST['alto'. $i] *  $_REQUEST['ancho'. $i])]; 
}

arsort($articulos);

echo "Este es el orden de ordenamiento <br/> Teniendo en cuenta que los más grandes tienen los primeros lugares <br/> <br/>";

foreach ($articulos as $articulo => $dimension) {
  echo  $articulo . " tiene una dimensón de " . $dimension . "<br/>";
}

Es un código muy simple, pero funciona xD

<?php

//tienda de ropa con 35% de descuento


//se pone el valor que desea comprar

$price = (int)readline("ingrese el valor del producto que desea comprar: ". "\n");

//porcentaje de descuento 35%

$descuento = 35;

//se saca el porcentaje

$operation = ($price / 100) * $descuento;

//y se resta al precio original

$new_price = $price - $operation;

echo "Con el descuento aplicado, su total es de: ". $new_price;

?>

Descuento del 35% (solo la funcion)

function descuento35($valor){
    $descuento = 0.35; // 35% expresado en decimales
    $valorcondescuento = $valor - ($valor*$descuento);
    echo $valorcondescuento;
}

descuento35(100);

Reto 1

<?php


$productos = array(
    array("Zapatos", 42),
    array("Camisa", 15),
    array("Pantalon", 20),
    array("Gorra", 13),
    array("Calcetines", 5),
    array("Abrigos", 48)
);






?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <div class="form-container">
        <h1>Estos son nuestro productos con un 35% de descuento</h1>
        <h4 for="productos">Seleccione los prodcutos que desee</h4>
        <form action="analisis.php">
            <?php  for($i=0; $i < count($productos); $i++):?>
                <div class="chbx-container">
                    <label for="producto"><?=$productos[$i][0]?>:    $<?=$productos[$i][1]?></label>
                <input type="checkbox" value="<?=$i?>" name="producto<?=$i?>"/>
                </div>
            <?php endfor;?>
                <button type="submit">Enviar</button>
        </form>
    </div>
</body>
</html>
<?php

$productos = array(
    array("Zapatos", 42),
    array("Camisa", 15),
    array("Pantalon", 20),
    array("Gorra", 13),
    array("Calcetines", 5),
    array("Abrigos", 48)
);


function descuento($precio_original) {
    $total = ($precio_original-($precio_original*0.35));
    return $total;
}



?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <article>
        <section>
            <h2>Precios originales</h2>
            <div class="product-container">
                <?php for($i=0; $i < count($productos); $i++): ?>
                    <?php if($_REQUEST["producto".$i] != null): ?>
                        <p>
                            <?=$productos[$_REQUEST["producto".$i]][0].":  "."  ";?>
                            <?="$".$productos[$_REQUEST["producto".$i]][1]."<br/>";?>
                        </p>
                    <?php endif;?>
                <?php endfor;?>
            </div>
        </section>
        <section>
            <h2>Precios con el descuento aplicado</h2>
            <div class="product-container">
                <?php for($i=0; $i < count($productos); $i++): ?>
                    <?php if($_REQUEST["producto".$i] != null): ?>
                        <p>
                            <?=$productos[$_REQUEST["producto".$i]][0].":  "."  ";?>
                            <?="$".descuento($productos[$_REQUEST["producto".$i]][1])."<br/>";?>
                        </p>
                    <?php endif;?>
                <?php endfor;?>
            </div>
        </section>
    </article>
</body>
</html>
<?php
// print_r($_REQUEST);


function descuento($nombre, $precio){
    $descuento = $precio - ($precio * 0.35);

    return "El precio del producto: " . $nombre . " con un descuento del 35% es :" . $descuento;
}

echo descuento($_REQUEST['nombre'], $_REQUEST['precio']);

?>

Para el ordenamiento, usé la función arsort() que busqué en la documentacion de PHP como enseñó la profe:

<?php

if($_REQUEST){
    $dimensiones = array();
    for($i=0;$i<count($_REQUEST['nombre_producto']);$i++){
        $dimensiones[$i] = ($_REQUEST["ancho"][$i]*$_REQUEST["largo"][$i]);
    }
    arsort($dimensiones);
    foreach ($dimensiones as $key => $value) {
        echo "dimension $value corresponde a producto ",$_REQUEST["nombre_producto"][$key]."<br>";
    }
}else{
    $productos = array("teclado","mouse","led 32 pulgadas");

    $form = "<form action='' method='POST'>";
    $cierreForm = "</form>";
    $button = "<button type='submit'>Ordenar</button>";

    for($i=0;$i<count($productos);$i++){
        $form .= "<input type='text' value='$productos[$i]' name='nombre_producto[]' readonly>"." <input type='number' name='ancho[]' placeholder='Ingrese el ancho'> "." <input type='number' name='largo[]' placeholder='Ingrese el largo'><br>";
    }
    echo $form.$button.$cierreForm;
}

?>

Para el primer ejercicio use la posibilidad de crear un array de elementos en html usando corchetes “[ ]” en el name del input.

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Descuentos a la vista</title>
</head>
<body>
    <h5>FAVOR DE INGRESAR EL TAMAÑO DE LOS PRODUCTOS</h5>

    <form action="main.php" method="post">
        <input type="text" name="nombre_producto[]" placeholder="indique nombre del producto"> <input type="number" name="valor[]" placeholder="Ingrese el valor del producto""><br>
        <input type="text" name="nombre_producto[]" placeholder="indique nombre del producto"> <input type="number" name="valor[]" placeholder="Ingrese el valor del producto""><br>
        <input type="text" name="nombre_producto[]" placeholder="indique nombre del producto"> <input type="number" name="valor[]" placeholder="Ingrese el valor del producto""><br>

        <button type="submit">Ver Descuentos</button>
    </form>
</body>
</html>

En el main.php recorro dichos arrays y hago los calculos correspondientes:

<?php

if($_REQUEST){
    //print_r($_REQUEST);
    for($i=0;$i<=count($_REQUEST);$i++){
        $descuento = $_REQUEST["valor"][$i] * 0.35;
        echo $_REQUEST["nombre_producto"][$i]." valor inicial: ".$_REQUEST["valor"][$i]." (35% de descuento), precio final: ".($_REQUEST["valor"][$i] - $descuento).".<br>";
    }
}else{
    echo "error al recibir los productos<br>";
}

Así quedó el PHP

<code> 
<?php
//print_r($_REQUEST);
$precioLista = $_REQUEST['PrecioLista'];
//var_dump($precioLista);
function descuento ($precioLista) {
    $descuentoProducto = ($precioLista * 35) / 100;
    echo "El precio de lista es de:" . $precioLista . "<br>";
    echo "El precio con un descuento del 35% es:". $descuentoProducto;
}
descuento($precioLista);
?>

Así quedó el HTML

<code> 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Descuento a la vista</title>
</head>
<body>
    <form action="descuentos.php">
        <input type="number" name="PrecioLista">
        <button type="submit">Calcular descuento</button>
    </form>
</body>
</html>

Asi realicé el ejercicio de ordenamiento:

$respuesta = 1; 
$productos = array(); 

while($respuesta != 0){
    $producto = readline("Digite el nombre del producto: \n");
    $alto = readline("Digite el alto del producto: \n"); 
    $ancho = readline("Digite el ancho del producto: \n"); 
    $valor = $alto * $ancho; 
    $productos[$producto] = $valor; 
    $respuesta = readline('Si quieres parar digita 0, si quieres continuar presiona ENTER: '); 
}

mostrarOrden($productos); 


function mostrarOrden($productos){
    echo "los productos son: \n"; 
    
   arsort($productos); 
    var_dump($productos); 
    foreach($productos as $key => $valor){
        echo "$key:$valor \n"; 
    }
}
//PRIMER PANTALLA
<?php

     
function descuento ($valor){
    $valor_descuento = $valor * 0.65;
    echo ("Tu producto con descuento del 35% es de: $".$valor_descuento."<br>");
    echo ("El valor de tu producto inicialmente es de: $".$valor);
} 


$valor = $_REQUEST['valor'];
descuento ($valor);
?>


//SEGUNDA PANTALLA

<?php
$title = "<h1>Por favor ingresa el valor de tu producto</h1>";
$form ="<form action='ejercicio.php'>";
$button = "<button type='submit'>Agregar</button>";
$input = "<input type='text' name='valor'>";
$formCierre = "</form>";


echo $title.$form.$input.$button.$formCierre;

?>
//ejercicio 1-TIENDA DESCUENTOS
$productos=array();
function descuento($productos){
    $cantidad=readline("ingrese cantidad de producto: ");
    for($i=1;$i<=$cantidad;$i++){
        $productos[$i]=readline("ingrese precio del producto ".$i.": ");
        $valor_desc=$productos[$i]-$productos[$i]*0.35;
        echo "valor original: ".$productos[$i]."\n".
        "precio con descuento: ".$valor_desc."\n";
    }   
}
descuento($productos);
<?php
//EJERCICIO2 
//main.php
    echo "
        <form action='tamanio.php'>
        <input type='number' name='cantidad_p'>
        <button type='submit'>Enviar</button>
        </form>
    "
?>
<?php
//tamanio.php
    print_r($_REQUEST);
    $form="<form action='resultado.php'>";
    $formCierre="</form>";
    $boton="</br><button type='submit'>Enviar</button>";
    
    for($i=1;$i<=$_REQUEST['cantidad_p'];$i++){
        $form.="</br>Producto ".$i.":</br>"."Ingrese Ancho: "."<input type='number' name='ancho".$i."'></br>"."Ingrese Alto:".
                "<input type='number' name='alto".$i."'>";
    }

    echo $form.$boton.$formCierre;
?>
<?php
//resultado.php
    print_r($_REQUEST);
    $tamanio_product=array();
    $nro_producto=array();
    
    for($i=1;$i<=count($_REQUEST)/2;$i++){
        $tamanio_product[$i]=$_REQUEST['ancho'.$i]*$_REQUEST['alto'.$i];     
    }
        arsort($tamanio_product);
        foreach($tamanio_product as $key=>$val){
        echo "</br>Producto: $key--$val"."</br>";
     }
    
?>

He aquí mi aporte al primer ejercicio.

El form es dinámico, como lo hicimos en clases.

El primer paso debes indicar cuantos productos vas aplicar el descuento. Igualmente este primer formulario nos pregunta de cuánto es el descuento que se aplicará a los productos.

Este primer archivo está en HTML

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Calculadora de Descuentos</title>
</head>
<body>
    <form action="./main.php" method="POST">
        <label for="productQty">Indica la Cantidad de Productos a ingresar</label>
        <input type="number" name="productQty" id="productQty" min="1" max="20" required/>
        <label for="productDiscount">Ingresa el descuento a aplicar</label>
        <input type="number" name="productDiscount" id="productDiscount" min="0" max="100" required/>
        <button type="submit">Generar Calculadora de Descuentos</button>
    </form>
</body>
</html>

El segundo archivo es el principal que nos genera el formulario dinámicamente.

Cabe destacar que pasamos los valores a través del método post, para que no se vieran en la URL los datos.

Este archivo main.php está hecho en PHP

<?php
$productQty = $_POST["productQty"];
$productDiscount = $_POST["productDiscount"];
$formHeader = "<form action='./validate.php' method='POST'>";
$formInputs = "";
$formProductQty = "";
$formProductDiscount = "";
$formButton = "<button type='submit'>Enviar</button>";
$formCloseTag = "</form>";

for ($i=0; $i < $productQty ; $i++) { 
        $formInputs .= "Ingresa el valor del producto ".$i." sin descuento: ".
        "<input type='number' name='product".$i."' min='0' required/>".
        "<br/>";
        $formProductQty .="<input type='hidden' name='productQty' id='productQty' value='".$productQty."'/>";
        $formProductDiscount .="<input type='hidden' name='productDiscount' id='productDiscount' value='".$productDiscount."'/>";
    }
echo $formHeader.$formInputs.$formProductQty.$formProductDiscount.$formButton.$formCloseTag;

?>

Por último validamos los datos y arrojamos una respuesta con los datos ingresados

Tenemos que tener en cuenta que el descuento aplicado es el valor que el usuario colocó en un principio.

Todo los valores son dinámicos y se preguntan al usuario.

Aquí el código de validate.php

<?php
    $productQty = $_POST["productQty"];
    $productDiscount = $_POST["productDiscount"];
    $productPrice = 0;
    $discountAmmount = 0;


    for ($i=0; $i < $productQty; $i++) { 
        if ($_POST["product".$i] <= 0){
            echo "El producto ".$i.
            " no tiene descuento.<hr/>";
        } else {
            $discountAmmount = $_POST["product".$i] * $productDiscount/100;
            $productPrice = $_POST["product".$i] - $discountAmmount;
            echo "El producto ".$i.
            " tiene un costo original de: $".
            $_POST["product".$i].
            "<br/>" .
            "Hemos aplicado un descuento del: ".$productDiscount.
            "% <br/>" .
            "Por lo que solo deberás cancelar un total de: $".$productPrice.
            "<br/>" .
            "Te haz ahorrado un total de: $".$discountAmmount.
            "<hr/>";
        }
    }

?>

Ejercicio de Descuento:

tienda.php
<?php
$producto=array(“sofa”,“mesa”,“armario”,“libro”,
“lavadora”,“televisor”,“silla”,“teléfono”);
$form="<form action=‘ordenar.php’>";
$button="<button type=‘submit’>Enviar</button>";
$formCierre="</form>";
for ($i=0; $i <count($producto) ; $i++) {
$form.="$producto[$i]: ancho <input type=‘text’ name=‘ancho$i’>
alto <input type=‘text’ name=‘alto$i’> <br><br>";
}
echo $form.$button.$formCierre;

ordenar.php
<?php
$producto=array(“sofa”,“mesa”,“armario”,“libro”,
“lavadora”,“televisor”,“silla”,“teléfono”);
echo “SIN ORDENAR <br>”;
for ($i=0; $i < count($producto); $i++) {
$ancho[$i]=$_REQUEST[“ancho$i”];
$alto[$i]=$_REQUEST[“alto$i”];
echo “$producto[$i] $ancho[$i]x$alto[$i] <br>”;
}

do {
$cambio=false;
for ($i=0; $i <count($producto)-1 ; $i++) {
if(($ancho[$i]$alto[$i])>($ancho[$i+1]$alto[$i+1])){
$intercambio=$ancho[$i];
$ancho[$i]=$ancho[$i+1];
$ancho[$i+1]=$intercambio;
$intercambio=$alto[$i];
$alto[$i]=$alto[$i+1];
$alto[$i+1]=$intercambio;
$intercambio=$producto[$i];
$producto[$i]=$producto[$i+1];
$producto[$i+1]=$intercambio;
$cambio=true;
}
}
} while ($cambio==true);
echo “<br>ORDENADO<br>”;
for ($i=0; $i < count($producto); $i++) {
echo “$producto[$i] $ancho[$i]x$alto[$i] <br>”;
}

rebajas.html

<html>
<head>
<title>REBAJAS</title>
</head>
<body>
<form action=“rebajas.php”>
Cantidad de articulos: <input type=“text” name=“cantidad”>
<button type=“submit”>Enviar</button>
</form>
</body>
</html>

rebajas.php

<?php
$cantidad=$_REQUEST[“cantidad”];
$form="<form action=‘calcular.php’>";
$button="<button type=‘submit’>Enviar</button>";
$formCierre="</form>";
for ($i=0; $i <$cantidad ; $i++) {
$form.=“Nombre del produto: “.” <input type=‘text’ name=‘nombre$i’>” ;
$form.=“Precio del produto: “.” <input type=‘text’ name=‘precio$i’> <br>”;
}
echo $form=$form.$button.$formCierre;

calcular.php

<?php
$cantidad=$_REQUEST;
$form="";
for ($i=0; $i <count($cantidad)/2 ; $i++) {
$form.=$_REQUEST[“nombre$i”]." “.$_REQUEST[“precio$i”]*0.65 .”<br>";
}
echo $form;

Descuento a la vista:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Descuentos 35%</title>

    <style>
        body {
            font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
            font-size: 15px;
        }
        h1 {
            text-align: center;
        }
        .row {
            display: flex;
            flex-wrap: wrap;
            margin: 4em 0
        }
        .container {
            max-width: 1000px;
            width: 100%;
            margin: 0 auto;
            padding: 0 16px;
        }
        .col-md-4 {
            width: calc(33.333% - 40px);
            text-align: center;
            border: 2px solid whitesmoke;
            margin: 10px 20px;
            box-sizing: border-box;
        }
    </style>
</head>
<body>
    
<?php
    function descuento ($total) {
        return round((35 * $total) / 100);
    }

    class Product {
        public $name;
        public $price;

        public function __construct($name, $price) {
            $this->name = $name;
            $this->price = $price;
        }
    }

    $products = [
        new Product("Iphone 11", 5_000_000),
        new Product("Iphone 11 Pro", 10_000_000),
        new Product("Iphone 11 Pro Max", 15_000_000),
        new Product("Iphone 11 Pro Max 2", 20_000_000),
        new Product("Iphone 11 Pro Max 3", 25_000_000),
        new Product("Iphone 11 Pro Max 4", 30_000_000),
    ];
?>

<div class="container">
    <h1> Todos los productos con el 35% dcto. </h1>
    <div class="row">        
        <?php foreach ($products as $product) : 
            $dcto = descuento($product->price);
            $total = $product->price - $dcto; ?>
            <div class="col-md-4">
                <h3><?= $product->name ?></h3>
                <p>Precio: <del><?= $product->price ?></del> </p>
                <p>Descuento: <?= $dcto ?> </p>
                <p>Precio con descuento: <?= $total ?></p>
            </div>
        <?php endforeach; ?>
    </div>
</div>

</body>
</html>

Descuentos

descuentos.php

<code> <?php 


echo off(100, 35) . '<br>';
echo off(100, 50) . '<br>';
echo off(100, 90) . '<br>';


function off($value, $off) {

    $porcentage = $off/100;

    return $value - ($value * $porcentage);

}

MayorMenor

index.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <main>
        
        <?php if(isset($_REQUEST['cantProductos'])):?>
            <form action="index.php">

                <?php for ($i=1; $i <= (int)$_REQUEST['cantProductos']; $i++) :?>
            
                    <label for="ancho<?=$i?>">Ingresar Ancho de producto <?=$i?></label>
                    <input type="text" name="ancho<?=$i?>"><br>

                    <label for="alto<?=$i?>">Ingresar Alto de producto <?=$i?></label>
                    <input type="text" name="alto<?=$i?>"><br>

                <?php endfor;?>
                <input type="submit">
            
            </form>
        <?php else:?>
            <form action="index.php">
                <label for="cantProductos">Cantidad de productos</label>
                <input type="text" name="cantProductos">
                <input type="submit" value="Enviar">
            </form><br>
        <?php endif;?>

        <?php require_once 'result.php';
            if(isset($_REQUEST)):?>
                <h2>Ordenamiento de Producto</h2>
                <?php foreach ($orden=main() as $key) :?>
                    <b>Producto <?=$key?></b><br>
                <?php endforeach;?>

        <?php endif;?>

    </main>    
</body>
</html>

result.php

<?php

function main()
{
    $dimensiones = $_REQUEST;
    return $orden = ordenar($dimensiones);
}


function ordenar($productos) {
    $result = [];
    for ($i=1; $i < count($productos)/2; $i++) { 
        
        $ancho = $productos['ancho'.$i];
        $alto = $productos['alto'.$i];
        
        $result[] = tamañoProductos($ancho, $alto);
    }

    arsort($result);
    return $result;
}

function tamañoProductos($ancho, $alto) : int {

    $result = $ancho * $alto;
    return $result;
}

El botón que manda a la siguiente clase está mal, ya que nos dirige al examen habiendo dos clases más todavía.

Descuentos a la vista

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Procentaje</title>
</head>
<body>
    <form action='calcularPorcentaje.php'>
        <b>Ingresa el precio de tu prenda</b>
        <input type='number' placeholder='Precio' name='precio' required><br><br>
        <b>Ingresa el descuento</b>
        <input type='number' placeholder='Descuento' name='porcentaje' required>%<br><br>
        <input type='submit' value='Calcular Descuento'>
    </form> 
</body>
</html>
<?php

$cantidad =$_REQUEST['precio'];
$porcentaje =$_REQUEST['porcentaje'];

function obtenerPorcentaje($cantidad, $porcentaje) {

    $descuento = ((float)$cantidad * (int)$porcentaje) / 100;
    $descuento = round($descuento, 2);
    $precioFinal = $cantidad - $descuento;
    echo "El precio de tu prenda es de <b>".$cantidad."</b> pesos <br>";
    echo "El descuento de tu prenda es del <b>".$porcentaje." %</b><br>";
    echo "El costo final de tu prenda es de <b>".$precioFinal."</b> pesos <br>";

}

obtenerPorcentaje($cantidad, $porcentaje);

?>

De mayor a menor

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Ordenar Productos</title>
</head>
<body>
    <form action='ordenProductos.php'>
        <b>Producto 1</b>
        <input type='text' name='producto0' required>
        <b>Alto</b>
        <input type='number' placeholder='cm' name='alto0' required>
        <b>Ancho</b>
        <input type='number' placeholder='cm' name='ancho0' required><br><br>

        <b>Producto 2</b>
        <input type='text' name='producto1' required>
        <b>Alto</b>
        <input type='number' placeholder='cm' name='alto1' required>
        <b>Ancho</b>
        <input type='number' placeholder='cm' name='ancho1' required><br><br>

        <b>Producto 3</b>
        <input type='text' name='producto2' required>
        <b>Alto</b>
        <input type='number' placeholder='cm' name='alto2' required>
        <b>Ancho</b>
        <input type='number' placeholder='cm' name='ancho2' required><br><br>

        <input type='submit' value='Ordenar'>
    </form> 
</body>
</html>
<?php

$totalProductos = count($_REQUEST) / 3;

$productosOrdenados = array(); 

for ($i=0; $i < $totalProductos ; $i++) { 
    $producto = $_REQUEST["producto".$i];
    $dimension = $_REQUEST["ancho".$i] * $_REQUEST["alto".$i];

    $productosOrdenados[$i] = $dimension;
}

$productos = arsort($productosOrdenados);

echo "<b>Orden de Productos</b><br>";
foreach ($productosOrdenados as $key => $value) {
    echo "<b>Producto:</b> ".$_REQUEST["producto".$key]." --- <b>Dimensión:</b> ".$value." cm<sup>2</sup> <br>";
}

?>

Voy a compartir la solucion del reto.

$cantidad = $_POST['numero']; //Captura el valor de la cantidad desde el formulario del archivo index.php
            $parrafo = "<p>";
            $parrafoFin = "</p>";
            $numOk = (is_numeric($cantidad) && $cantidad > 0);
            if($numOk > 0){            //Valida si el valor es positivo y si es correcto crea el formulario de captura de datos
                $formulario = "<form action='mostrar.php' method='post'>";
                $formularioFin = "</form";
                $boton = "<button>ENVIAR</button>";
                $Resultado = "";
                for ($i = 0; $i < $cantidad ; $i++) {
                    $p = $i+1; //Primero suma 1 para luego mostrar la posicion real desde el primer articulo
                    $filaProducto = "<label for='producto$i'><b>Artículo($p) : </b></label>" . "<input id='producto$i' class='dato' type='text' name='producto$i' placeholder='Tipo de Artículo'>";
                    $filaPrecio = "<label for='precio$i'>Precio ($): </label>" . "<input id='precio$i' class='dato' type='number' name='precio$i' placeholder='El valor Real del Articulo'>";
                    $filaAncho = "<label for='x$i'>Ancho (cm): </label>" . "<input id='x$i' class='dato' type='number' name='x$i' placeholder='La Medida Horizontal'>";
                    $filaAlto = "<label for='y$i'>Alto (cm): </label>" . "<input id='y$i' class='dato' type='number' name='y$i' placeholder='La Medida Vertical'><br>";
                    $Resultado .= $parrafo.$filaProducto.$filaPrecio.$filaAncho.$filaAlto.$parrafoFin; //Va concatenando con los ciclos anteriores
                }
                echo $formulario.$Resultado.$boton.$formularioFin;
            }else{
                $aviso = "Por favor verifique la información <br> Ingrese un número positivo (sin signo -) <br> Para registrar correctamente los productos.";
                echo $parrafo.$aviso.$parrafoFin;
            }

Funcionamiento de la aplicación

<?php
/**
 * Descuentos a la vista
 * 
 * En una tienda de ropa hay descuento del 35% en todos sus productos, 
 * debes realizar una función que reciba el valor de cada producto y 
 * le reste el 35% para mostrar luego su valor original y 
 * en cuánto queda su nuevo valor a pagar.
 * 
 */
$precios = [
    'camperas' => 8700,
    'pantalones' => 3500,
    'remeras' => 2750,
    'medias' => 1500
];

CONST DESCUENTO = 0.35;

function aplicarDescuento($prenda, $precio) {
    $oferta = $precio - ($precio * DESCUENTO);
    return "$prenda en oferta!!! $<del>$precio</del> Ahora $$oferta !!!<br><br>";
}

echo "<h1>DESCUENTOS INCREÍBLES DEL " . DESCUENTO * 100 . "% !!!!</h1><br>";

foreach($precios as $nombre => $valor)  {
    echo aplicarDescuento($nombre, $valor) . PHP_EOL;
}
<?php

echo "Ingrese el valor del producto:
<form action='analisis-descuentos.php'>
    <input type='text' name='valor'>
    <button type='submit'>Enviar</button>
</form>

"

?>
<?php

$valorOriginal = (int) $_REQUEST["valor"];

$oferta = $valorOriginal - ($valorOriginal * 35 / 100);

echo "El precio original es: $valorOriginal, pero en oferta pagas solo: $oferta";

?>