Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios»
De WikiEducator
(Página creada con «{{:Usuario:ManuelRomero/ProgramacionWeb/Arrays/nav}}») |
|||
| Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/ProgramacionWeb/Arrays/nav}} | {{:Usuario:ManuelRomero/ProgramacionWeb/Arrays/nav}} | ||
| + | <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> | ||
| + | "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 | ||
| + | //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> | ||
| + | |||
| + | }} | ||
| + | |||
| + | --> | ||
| + | <!-- | ||
| + | <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 19:55 19 nov 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)
