Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/INAEM2021/Arrays/ejercicios»
De WikiEducator
(Página creada con «{{:Usuario:ManuelRomero/ProgramacionWeb/INAEM2021/Arrays/nav}}») |
|||
| Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/ProgramacionWeb/INAEM2021/Arrays/nav}} | {{:Usuario:ManuelRomero/ProgramacionWeb/INAEM2021/Arrays/nav}} | ||
| + | {{:Usuario:ManuelRomero/dwes/B2T1/arrays/nav}} | ||
| + | __NOTOC__ | ||
| + | {{Actividad|Title=Array de 5 ciudades| | ||
| + | Crea un array indexado con 5 valores de ciudades y recórrelo con un for}} | ||
| + | <!-- | ||
| + | <font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio2 | Solución]]</font> | ||
| + | --> | ||
| + | <hr/> | ||
| + | {{MRM_Actividad|Crea un array con 10 notas aleatorias y posteriormente las visualizas obteniendo los valores | ||
| + | estadísticos de la media, máxima y mínima}} | ||
| + | <!-- | ||
| + | <font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio3 | Solución]]</font> | ||
| + | <hr/> | ||
| + | --> | ||
| + | {{MRM_Actividad|Crea un array con imagenes aleatorias y luego haz que se carguen cada 5 segundos de forma aleatoria}} | ||
| + | |||
| + | {{Tip|Para recargar de forma periódica la página pasados unos segundos podemos usar el meta de html | ||
| + | <source lang=html5> | ||
| + | <META HTTP-EQUIV=Refresh CONTENT="5; URL=vuestra_pagina.php"> | ||
| + | </source> | ||
| + | }} | ||
| + | <source lang=php> | ||
| + | "https://image.shutterstock.com/image-photo/young-woman-skateboarder-skateboarding-city-600w-664570948.jpg" | ||
| + | "https://gratisography.com/wp-content/uploads/2019/05/shutterstock-its-not-stock-block-new.jpg" | ||
| + | "https://www.cerotec.net/data/fotos/gratisography.jpg" | ||
| + | "https://cdn.pixabay.com/photo/2019/09/29/20/34/athens-4514311__340.jpg" | ||
| + | "https://cdn.pixabay.com/photo/2019/10/24/18/36/forest-4574893__340.jpg" | ||
| + | "https://cdn.pixabay.com/photo/2015/09/26/13/25/halloween-959049__340.jpg" | ||
| + | "https://cdn.pixabay.com/photo/2019/09/11/09/27/people-4468350__340.jpg" | ||
| + | "https://cdn.pixabay.com/photo/2019/10/23/18/58/malai-4572548__340.jpg" | ||
| + | "https://cdn.pixabay.com/photo/2019/06/25/05/19/waterfall-4297450__340.jpg" | ||
| + | "https://cdn.pixabay.com/photo/2019/10/23/10/47/aesthetic-4571211__340.jpg" | ||
| + | "https://cdn.pixabay.com/photo/2019/10/23/18/32/freudenberg-4572410__340.jpg" | ||
| + | </source> | ||
| + | <!-- | ||
| + | {{Plegable|hide|Posible solución| | ||
| + | <source lang=php> | ||
| + | <?php | ||
| + | //Inicializamos el array de imágenes | ||
| + | $array = ["http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/a_piece_for_the_wicked_vol_1.jpg", | ||
| + | "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/double_t.jpg", | ||
| + | "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/flagrantly_yours.jpg", | ||
| + | "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/gothic.jpg", | ||
| + | "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/iliad_of_a_wolverhampton_wanderer.jpg", | ||
| + | "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/libertine.jpg", | ||
| + | "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/lullabies_for_tough_guys.jpg", | ||
| + | "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/nocturnal_nomad.jpg", | ||
| + | "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_idle_gait_of_the_self_possessed.gif", | ||
| + | "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_life_and_times_of_a_ballad_monger.jpg" | ||
| + | ]; | ||
| + | |||
| + | $ind1 = rand(0, count($array) - 1); | ||
| + | $ind2 = rand(0, count($array) - 1); | ||
| + | $ind3 = rand(0, count($array) - 1); | ||
| + | ?> | ||
| + | --> | ||
| + | <!-- | ||
| + | <font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio4 | Solución]]</font> | ||
| + | <hr/> | ||
| + | --> | ||
| + | ===Tienda de verduras=== | ||
| + | Dada una tienda de verduras con los siguientes productos | ||
| + | $productos = [ | ||
| + | 'lechuga' => ['unidades' => 200, | ||
| + | 'precio' => 0.90], | ||
| + | 'tomates' =>['unidades' => 2000, | ||
| + | 'precio' => 2.15], | ||
| + | 'cebollas' =>['unidades' => 3200, | ||
| + | 'precio' => 0.49], | ||
| + | 'fresas' =>['unidades' => 4800, | ||
| + | 'precio' => 4.50], | ||
| + | 'manzanas' =>['unidades' => 2500, | ||
| + | 'precio' => 2.10], | ||
| + | ]; | ||
| + | *Realiza una aplicación con un formulario para poder comprar productos | ||
| + | *Tras la compra se visualizará la factura del producto siempre que haya unidades | ||
| + | *Se mostrará las unidades que quedan de cada producto | ||
| + | |||
| + | ===Contar accesos de usuarios identificados=== | ||
| + | <br /> | ||
| + | {{Actividad| | ||
| + | ;Creamos una aplicación dónde los usuarios se identifican (una caja de texto para identificarse) | ||
| + | :Luego iremos contando cada vez que un usuario hace un click | ||
| + | <!-- | ||
| + | {{Plegable|hide|Posible solución| | ||
| + | <source lang=php> | ||
| + | <?php | ||
| + | //Si hemos dado a enviar leemos el nombre de usuario y los accesos anteriores (Array nombre:entero acceso | ||
| + | if (isset($_POST['enviar'])) { | ||
| + | $nombre = $_POST['nombre']; | ||
| + | $accesos = $_POST['accesos']; //La primera vez estará vacíon | ||
| + | $accesos[$nombre] ++; //Agregamos en el array el nombre y el acceso actual | ||
| + | //Esta instrucción si no existe ese nombre en el array lo crea | ||
| + | //Si sí que existe, accede a él e incremente a uno su contenido | ||
| + | // (nombre es el índice del array) | ||
| + | } | ||
| + | ?> | ||
| + | <!doctype html> | ||
| + | <html lang="en"> | ||
| + | <head> | ||
| + | <meta charset="UTF-8"> | ||
| + | <title>Document</title> | ||
| + | </head> | ||
| + | <body> | ||
| + | <form action="index.php" method=POST> | ||
| + | |||
| + | Usuario <input type="text" name="nombre" id=""> | ||
| + | <?php | ||
| + | //Mostramos el array | ||
| + | foreach ($accesos as $nombre => $acceso) | ||
| + | echo "<input type='hidden' name= accesos[$nombre] value = $acceso>\n" | ||
| + | ?> | ||
| + | |||
| + | <input type="submit" value="Acceder" name="enviar"> | ||
| + | </form> | ||
| + | <?php | ||
| + | //Guardamos el array para leerlo la próxima vez | ||
| + | if (isset($accesos)) | ||
| + | foreach ($accesos as $nombre => $acceso) | ||
| + | echo "<h1> $nombre : $acceso </h1>\n"; | ||
| + | ?> | ||
| + | </body> | ||
| + | </html> | ||
| + | </source> | ||
| + | |||
| + | }} | ||
| + | --> | ||
| + | }} | ||
| + | |||
| + | ;Vamos a realizar un recorrido de un array asociativo de varios niveles. | ||
| + | :Realizaremos un estudio del array y luego lo recorreremos | ||
| + | {{Actividad| | ||
| + | ;Dado un fichero que contiene un array asociativo | ||
| + | ;El array contiene información de cantantes y de cada cantante su nombre, su década y canciones que tiene | ||
| + | :Se trata que trabajes en dos aspectos que se complementas | ||
| + | #Entender y explicar el contenido del array, es decir si es asociativo o indexado y los indices que tiene. Si una posición es un array a su vez procedemos a explicarlo igualmente | ||
| + | #Posteriormente lo recorreremos mostrando información de los cantantes y para cantante sus canciones | ||
| + | ::Para hacer esta parte facilito un pequeño css y consistiría en aplicar el div cantante y el div canciones }} | ||
| + | * Puedes ver este ejercico en esta url de donde está adaptado http://www.tecn.upf.es/~ocelma/cpom/practicas/ es el ejercicio 12 | ||
| + | |||
| + | ;Ficheros | ||
| + | |||
| + | [http://es.wikieducator.org/images/7/71/Artista.pdf Artista.pdf] Este fichero es un css para el ejercicios | ||
| + | [[/Usuario:ManuelRomero/php/dwes/B2T1/arrays/ejercicios|Contenido del ArrayAsociativo.php]] | ||
| + | ====Planteando la solución==== | ||
| + | |||
| + | ===Contenido del array=== | ||
| + | |||
| + | ;Para ver el array una buena forma es cargarlo en un fichero php y hacer o bien un '''''var_dump''''' o bien un '''''print_r''''' | ||
| + | |||
| + | <source lang=php> | ||
| + | <?php | ||
| + | |||
| + | require_once ("datos.php"); | ||
| + | |||
| + | var_dump( $artistas ); | ||
| + | |||
| + | |||
| + | ?> | ||
| + | </source> | ||
| + | *A partir de él podemos mostrar la siguiente imagen que describe el aray | ||
| + | [[Imagen:arrayComplejo.png]] | ||
| + | *Observamos que en primera instancia tengo un array asociativo de 6 índices cuyos valores son | ||
| + | '''''185711, 32841, 84062, 84430, 84221, 118504''''' | ||
| + | *Cada posición tiene como valor un array asociativo de 4 posiciones cuyos índices tiene los valores | ||
| + | '''''name decades link canciones''''' | ||
| + | *La posición '''''name''''' directamente tiene un valor string que es el nombre del artista | ||
| + | *La posición '''''decades''''' tiene un valor string que es la década de ese cantante | ||
| + | *La posición '''''link''''' tiene un valor string que es un url a una página con información sobre el artista | ||
| + | *La posición '''''canciones''''' es un array indexado de tantas posicione como canciones tenga el artista | ||
| + | *Cada posición del array indexado canciones es un array asociativo con dos índices | ||
| + | '''''title link''''' | ||
| + | *La posición '''''title''''' es un string con el título de la canción | ||
| + | *La posición '''''link''''' es un string con un url donde se puede oir la canción (Actualmente ya no están alojadas en esa posición) | ||
| + | <!-- | ||
| + | <font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio1 | Solución]]</font> | ||
| + | <hr /> | ||
| + | --> | ||
Revisión de 08:54 15 feb 2022
Tip: Para recargar de forma periódica la página pasados unos segundos podemos usar el meta de html
<META HTTP-EQUIV=Refresh CONTENT="5; URL=vuestra_pagina.php">
"https://image.shutterstock.com/image-photo/young-woman-skateboarder-skateboarding-city-600w-664570948.jpg" "https://gratisography.com/wp-content/uploads/2019/05/shutterstock-its-not-stock-block-new.jpg" "https://www.cerotec.net/data/fotos/gratisography.jpg" "https://cdn.pixabay.com/photo/2019/09/29/20/34/athens-4514311__340.jpg" "https://cdn.pixabay.com/photo/2019/10/24/18/36/forest-4574893__340.jpg" "https://cdn.pixabay.com/photo/2015/09/26/13/25/halloween-959049__340.jpg" "https://cdn.pixabay.com/photo/2019/09/11/09/27/people-4468350__340.jpg" "https://cdn.pixabay.com/photo/2019/10/23/18/58/malai-4572548__340.jpg" "https://cdn.pixabay.com/photo/2019/06/25/05/19/waterfall-4297450__340.jpg" "https://cdn.pixabay.com/photo/2019/10/23/10/47/aesthetic-4571211__340.jpg" "https://cdn.pixabay.com/photo/2019/10/23/18/32/freudenberg-4572410__340.jpg"
Tienda de verduras
Dada una tienda de verduras con los siguientes productos $productos = [
'lechuga' => ['unidades' => 200,
'precio' => 0.90],
'tomates' =>['unidades' => 2000,
'precio' => 2.15],
'cebollas' =>['unidades' => 3200,
'precio' => 0.49],
'fresas' =>['unidades' => 4800,
'precio' => 4.50],
'manzanas' =>['unidades' => 2500,
'precio' => 2.10],
];
- Realiza una aplicación con un formulario para poder comprar productos
- Tras la compra se visualizará la factura del producto siempre que haya unidades
- Se mostrará las unidades que quedan de cada producto
Contar accesos de usuarios identificados
- Vamos a realizar un recorrido de un array asociativo de varios niveles.
- Realizaremos un estudio del array y luego lo recorreremos
|
- Puedes ver este ejercico en esta url de donde está adaptado http://www.tecn.upf.es/~ocelma/cpom/practicas/ es el ejercicio 12
- Ficheros
Artista.pdf Este fichero es un css para el ejercicios
Contenido del ArrayAsociativo.php
Planteando la solución
Contenido del array
- Para ver el array una buena forma es cargarlo en un fichero php y hacer o bien un var_dump o bien un print_r
<?php require_once ("datos.php"); var_dump( $artistas ); ?>
- A partir de él podemos mostrar la siguiente imagen que describe el aray
- Observamos que en primera instancia tengo un array asociativo de 6 índices cuyos valores son
185711, 32841, 84062, 84430, 84221, 118504
- Cada posición tiene como valor un array asociativo de 4 posiciones cuyos índices tiene los valores
name decades link canciones
- La posición name directamente tiene un valor string que es el nombre del artista
- La posición decades tiene un valor string que es la década de ese cantante
- La posición link tiene un valor string que es un url a una página con información sobre el artista
- La posición canciones es un array indexado de tantas posicione como canciones tenga el artista
- Cada posición del array indexado canciones es un array asociativo con dos índices
title link
- La posición title es un string con el título de la canción
- La posición link es un string con un url donde se puede oir la canción (Actualmente ya no están alojadas en esa posición)
