Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Arrays/ejercicios»
De WikiEducator
Línea 9: | Línea 9: | ||
{{:Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Arrays/nav}} | {{:Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Arrays/nav}} | ||
<br /> | <br /> | ||
− | {{ | + | __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> | <source lang=php> | ||
− | + | "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" | |
− | + | ); | |
− | + | </source> | |
− | + | <!-- | |
− | + | {{Plegable|hide|Posible solución| | |
− | + | <source lang=php> | |
− | + | <?php | |
− | echo " | + | //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); | ||
+ | ?> | ||
+ | <!DOCTYPE html> | ||
+ | <!-- | ||
+ | To change this license header, choose License Headers in Project Properties. | ||
+ | To change this template file, choose Tools | Templates | ||
+ | and open the template in the editor. | ||
+ | --> | ||
+ | <html> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <META HTTP-EQUIV=Refresh CONTENT="3; URL=index.php"> | ||
+ | <title>Imágenes</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <img src="<?php echo $array[$ind1] ?>" alt=""> | ||
+ | <img src="<?php echo $array[$ind2] ?>" alt=""> | ||
+ | <img src="<?php echo $array[$ind3] ?>" alt=""> | ||
+ | </body> | ||
+ | </html> | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
}} | }} | ||
− | + | ||
− | + | --> | |
<!-- | <!-- | ||
+ | <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> | <source lang=php> | ||
<?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> | </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 /> | ||
--> | --> | ||
− |
Última revisión de 06:29 12 ene 2019
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">
"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" );
<html>
<head> <meta charset="UTF-8"> <META HTTP-EQUIV=Refresh CONTENT="3; URL=index.php"> <title>Imágenes</title> </head> <body> <img src="<?php echo $array[$ind1] ?>" alt=""> <img src="<?php echo $array[$ind2] ?>" alt=""> <img src="<?php echo $array[$ind3] ?>" alt=""> </body>
</html> </source>
}}
-->
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)