Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/INAEM2021/Arrays/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
(Tienda de verduras)
 
(7 revisiones intermedias por el mismo usuario no mostrado)
Línea 23: Línea 23:
  
 
<h1>Vamos a mostrar un título en diferentes colores</h1>
 
<h1>Vamos a mostrar un título en diferentes colores</h1>
 +
 +
<!--
 +
{{Plegable|hide|Posible solución|
 +
}}
 +
  
 
<?php
 
<?php
Línea 80: Línea 85:
 
}}
 
}}
  
{{Actividad|Title=Array de 5 ciudades|
 
Crea un array indexado con 5 valores de ciudades y recórrelo con un for y con un foreach. Observa las diferencias.
 
Cara a nuestra formación intentaremos usar siempre un foreach}}
 
  
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio1|Ejercicio 1 : Recorrer un array básico]]===
 +
<br />
 +
{{Actividad|Title=Ejercicio 1: Recorrer una array básico|
 +
*Crea un array indexado con 5 valores de países y recórrelo con un for
 +
*Ahora  crea un array con 5 países como índice y sus correspondiente capitales como valores
 +
*Después recorrelo con un foreach
 +
}}
 +
 +
<!--
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio2 | Solución]]</font>
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio2 | Solución]]</font>
 +
-->
 
<hr/>
 
<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}}
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio2|Ejercicio 2 : Manipulando un array]]===
 +
 
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 2: Manipulando un array|
 +
;Asignando y elmininando valores
 +
*Creamos un array asingnándole 5 valores de forma indexada
 +
*Asigna valores entero, cadenas, y la quinta posición que sea otro array de tres elementos
 +
*Lo visualizamos con un '''''var_dump'''''
 +
*Agregamos valores en posiciones 15 y 30
 +
*Lo visualizamos con un '''''var_dump'''''
 +
*Eliminamos los índices vacíos de forma que quede compacto (sin usar funciones)
 +
**Es decir las desaparecen las posiciones 15 y 30
 +
**Sus valores se mantienen en las posicones 5 y 6
 +
}}
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio3|Ejercicio 3 : Crear un array de notas]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 3 : Crear un array de notas|
 +
Crea un array con 10 notas aleatorias y posteriormente las visualizas obteniendo los valores estadísticos de la  media, máxima y mínima
 +
*Hazlo de forma algorítmica, sin usar funciones de arrays
 +
}}
 +
<!--
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio3 | Solución]]</font>
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio3 | Solución]]</font>
 
<hr/>
 
<hr/>
{{MRM_Actividad|Crea un array con imagenes aleatorias y luego haz que se carguen cada 5 segundos de forma aleatoria}}
+
-->
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio4|Ejercicio 4 : Usando funciones de arrays]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 4 : Usando funciones de array|
 +
Repite el ejercicio anterior usando funciones para todas las acciones
 +
 
 +
*Crea un array de notasde 15 alumnos Inicializadas con 0
 +
*Asiga a cada nota un valor aleatorio entre 5 y 10
 +
*Visualiza el array y verfica sus valores
 +
*Obtener la nota máxima, la mínima y la media del array
 +
;Ahora continuamos usando más funciones vistas en la teoría
 +
*Crea otro array de notas de 15 alumnos con notas entre 0 y 5
 +
*Junta los dos array en uno solo
 +
*Vuelve a realizar las acciones anteriores (max, min y media)
 +
*Recorre el array con un foreach
 +
*REaliza el recorrido con las funciones de recorrido especificadas anteriormente, mostrando en cada caso el ínice  y valor  (next, reset, current, key)
 +
*Busca el primer 10 en el array y devuelve su posición
 +
*Confirma si hay un 7 y un 4 como valores dentro del array
 +
*Ordena el array ascendentemente y muéstralo
 +
*Ordena el array descendentemente y muéstralo
 +
*Elimina valores repetidos y muéstralos
 +
 
 +
}}
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio5|Ejercicio 5 : Imágenes aleatorias]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 5 : Imágenes aleatorias|
 +
*Crea un array con imagenes aleatorias y luego haz que se carguen cada 5 segundos de forma aleatoria.
 +
*Es muy importante que las 3 imágenes no se puedan repetir, que sean diferentes
  
 
{{Tip|Para recargar de forma periódica la página pasados unos segundos podemos usar el meta de html
 
{{Tip|Para recargar de forma periódica la página pasados unos segundos podemos usar el meta de html
Línea 96: Línea 159:
 
<META HTTP-EQUIV=Refresh CONTENT="5; URL=vuestra_pagina.php">
 
<META HTTP-EQUIV=Refresh CONTENT="5; URL=vuestra_pagina.php">
 
</source>
 
</source>
}}
+
;Como array de imágenes podemos tomar estas:
 
<source lang=php>
 
<source lang=php>
"https://image.shutterstock.com/image-photo/young-woman-skateboarder-skateboarding-city-600w-664570948.jpg"
+
$array=[
"https://gratisography.com/wp-content/uploads/2019/05/shutterstock-its-not-stock-block-new.jpg"
+
"https://es.wikieducator.org/images/3/3d/Ajax_cliente_servidor.png",
"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|
+
"https://es.wikieducator.org/images/7/7b/Funcionamiento_ajax.png",
<source lang=php>
+
"https://es.wikieducator.org/images/a/aa/Angular_app_base.png",
 +
"https://es.wikieducator.org/images/3/3d/Docker_distancia_1.png",
  
<?php
+
"https://es.wikieducator.org/images/4/4e/Opcion_Instalar.png",
//Declaramos el array
+
"https://es.wikieducator.org/images/a/ab/AplicacionWeb.png",
$imagenes = [
+
"https://es.wikieducator.org/images/e/e4/Red3.png",
    "https://image.shutterstock.com/image-photo/young-woman-skateboarder-skateboarding-city-600w-664570948.jpg",
+
"https://es.wikieducator.org/images/f/f2/DACTW.png",
    "https://gratisography.com/wp-content/uploads/2019/05/shutterstock-its-not-stock-block-new.jpg",
+
"https://es.wikieducator.org/images/e/e5/M3_web.png",
    "https://www.cerotec.net/data/fotos/gratisography.jpg",
+
"https://es.wikieducator.org/images/a/a6/Ficheros.jpeg"];
    "https://cdn.pixabay.com/photo/2019/09/29/20/34/athens-4514311__340.jpg",
+
</source>
    "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"
+
];
+
  
/*Primera opción de solución para obtener las tres posiciones*/
+
}}
  
//Generar 3 posiciones aleatorias NO REPETIDAS
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio6|Ejercicio 6 : Tienda de verduras]]===
$size = sizeof($imagenes)-1;
+
<br />
$pos1 = rand (0,$size);
+
{{MRM_Actividad|Title=Ejercicio 6 : Tienda de verduras|
 
+
//Generamos la segunda posición
+
$pos2 = rand (0,$size);
+
//Verificamos que no coincida con la primera
+
while ($pos2==$pos1)
+
    $pos2 = rand (0,$size);
+
 
+
//Generamos la tercera posición
+
$pos3 = rand (0,$size);
+
//Verificamos que no coincida con la primera ni con la segunda
+
while (($pos3==$pos2)||( $pos3 == $pos1))
+
    $pos3 = rand (0,$size);
+
 
+
$posiciones =[ $pos1, $pos2, $pos3];
+
/*Segunda opción de solución para obtener las tres posiciones*/
+
/*En este caso usamos la estructura do{..}while(); en lugar de un wile
+
Esta estructura a diferencia de la anterior,
+
siempre va a ejecutar una vez
+
el contenido de la estructura de control.
+
*/
+
 
+
//Generar 3 posiciones aleatorias NO REPETIDAS
+
$size = sizeof($imagenes)-1;
+
$pos1 = rand (0,$size);
+
 
+
//Generamos la segunda posición
+
do {
+
    $pos2 = rand(0, $size);
+
}while ($pos2==$pos1);
+
//Verificamos que no coincida con la primera
+
 
+
//Generamos la tercera posición
+
do {
+
    $pos3 = rand(0, $size);
+
}while (($pos3==$pos2)||( $pos3 == $pos1));
+
//Verificamos que no coincida con la primera ni con la segunda
+
 
+
$posiciones =[ $pos1, $pos2, $pos3];
+
 
+
 
+
 
+
/*Tercera  opción
+
Usamos la función array_rand
+
Esta función me retorna  posiciones aleatorias de un array,
+
y me lo retorna en otro array
+
*/
+
$posiciones = array_rand($imagenes, 3);
+
//Prueba a hacer un var_dump de $posiciones
+
 
+
 
+
?>
+
 
+
<!doctype html>
+
<html lang="en">
+
<head>
+
    <meta charset="UTF-8">
+
    <meta name="viewport"
+
    <meta http-equiv="Refresh" content="3">
+
    <title>Document</title>
+
</head>
+
<body>
+
 
+
<h1>Imágenes</h1>
+
 
+
<?php
+
foreach ($posiciones as $posicion) {
+
    echo "<img width='300' src='$imagenes[$posicion]'>";
+
}
+
?>
+
 
+
</body>
+
</html>
+
 
+
 
+
</source>
+
}}
+
===Tienda de verduras===
+
 
Dada una tienda de verduras con los siguientes productos
 
Dada una tienda de verduras con los siguientes productos
 
<source lang=php>
 
<source lang=php>
Línea 227: Línea 197:
 
];
 
];
 
</source>
 
</source>
{{plegable|hide|ejemplo recorrer el array|
 
<source lang=php>
 
<?php
 
$tienda =    ['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]
 
];
 
 
 
foreach ( $tienda as $producto => $datos )
 
 
  echo "<h1> $producto hay {$datos['unidades']}  unidades  {$datos['precio']} €</h1>";
 
 
 
 
?>
 
</source>
 
 
 
}}
 
 
*Realiza una aplicación con un formulario para poder comprar productos  
 
*Realiza una aplicación con un formulario para poder comprar productos  
 
*Tras la compra se visualizará la factura del producto siempre que haya unidades
 
*Tras la compra se visualizará la factura del producto siempre que haya unidades
 
*Se mostrará las unidades que quedan de cada producto
 
*Se mostrará las unidades que quedan de cada producto
{{plegable|hide|Posible solución|
 
<source lang=php>
 
 
 
<?php
 
$tienda = [
 
    '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],
 
];
 
if (isset($_POST['submit'])) {
 
//Leo la compra
 
    $compra = $_POST['compra'];
 
 
//generar la factura
 
//Para ello leemos cada producto comprado y voy actualizando
 
 
    $factura = "";
 
    $total = 0;
 
    foreach ($compra as $producto => $unidades) {
 
        if ($unidades > 0) { //solo si he comprado, si no, no incluyo en la factura
 
            $precio = $tienda[$producto]['precio'];
 
            if ($unidades > $tienda[$producto]['unidades'])
 
                $unidades = $tienda[$producto]['unidades'];
 
            $subtotal = $precio * $unidades;
 
 
            //Para establecer plural en la palabra unidad o unidades
 
            $plural = $unidades > 1 ? "es" : "";
 
 
            $factura .= "$unidades unidad$plural de $producto a $precio = $subtotal<br />";
 
            $total = $total + $subtotal;
 
        }
 
    }
 
    $factura .= "Total = $total Euros";
 
 
 
    //generar un informe con los productos que quedan
 
    //Lo podría hacer en el bucle anterior, es muy parecido
 
    $informe = "";
 
    foreach ($compra as $producto => $unidades) {
 
        if ($unidades > 0) { //solo si he comprado, si no, no incluyo en la factura
 
            $unidades_iniciales = $tienda[$producto]['unidades'];
 
            if ($unidades > $unidades_iniciales)
 
                $unidades = $unidades_iniciales;
 
 
            $resto_unidades = $unidades_iniciales - $unidades;
 
            $informe .= "De $producto había $unidades_iniciales y quedan $resto_unidades unidades.<br />";
 
        }
 
    }
 
 
}
 
 
?>
 
<!doctype html>
 
<html lang="en">
 
<head>
 
    <meta charset="UTF-8">
 
    <meta name="viewport"
 
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
 
    <title>Document</title>
 
</head>
 
<body>
 
<fieldset>
 
    <legend>Datos para comprar</legend>
 
    <form action="index.php" method="post">
 
        <?php
 
        foreach ($tienda as $producto => $datos) {
 
            echo "<label for='$producto'>" . ucfirst($producto) . "</label> ({$datos['precio']})€&nbsp&nbsp";
 
            echo "<input type='text' name='compra[$producto]' id='$producto' /> <br />\n";
 
        }
 
        ?>
 
        <input type="submit" value="Comprar" name="submit">
 
    </form>
 
    <!--Visualizar la factuar -->
 
</fieldset>
 
<?php if (isset($factura)): ?>
 
    <h1>Factura </h1>
 
    <fieldset>
 
        <legend>Detalle de la factura</legend>
 
        <?= $factura ?>
 
    </fieldset>
 
    <fieldset>
 
        <legend>Informe de estado de la tienda</legend>
 
        <?= $informe ?>
 
    </fieldset>
 
<?php endif ?>
 
</body>
 
</html>
 
</source>
 
 
}}
 
}}
  
===Contar accesos de usuarios identificados===
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio7|Ejercicio 7 : Accesos de usuario]]===
 
<br />
 
<br />
{{Actividad|
+
{{MRM_Actividad|Title=Ejercicio 7 : Accesos de usuario|
 
;Creamos una aplicación dónde los usuarios se identifican (una caja de texto para identificarse)
 
;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
 
:Luego iremos contando cada vez que un usuario hace un click
Línea 407: Línea 253:
 
}}
 
}}
  
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio8|Ejercicio 8 : Array multinivel]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 8 : Array multinivel|
 
;Vamos a realizar un recorrido de un array asociativo de varios niveles.
 
;Vamos a realizar un recorrido de un array asociativo de varios niveles.
 
:Realizaremos un estudio del array y luego lo recorreremos
 
:Realizaremos un estudio del array y luego lo recorreremos
{{Actividad|
+
 
 
;Dado un fichero que contiene un array asociativo
 
;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
 
;El array contiene información de cantantes y de cada cantante su nombre, su década y canciones que tiene
Línea 415: Línea 264:
 
#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
 
#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
 
#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 }}
+
::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
 
;Ficheros
  
[http://es.wikieducator.org/images/7/71/Artista.pdf  Artista.pdf] Este fichero es un css para el ejercicios
+
[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]]
 
[[/Usuario:ManuelRomero/php/dwes/B2T1/arrays/ejercicios|Contenido del ArrayAsociativo.php]]
====Planteando la solución====
+
{{Plegable|hide|datos.php|
 +
<source lang=php>
 +
<?php
  
===Contenido del array===
+
$artistas = array(
 +
    185711 => array(
 +
        "name" => 'Pearl Jam',
 +
        "decades" => '(1990,2000)',
 +
        "link" => 'http://www.mp3.com/search.php?stype=artist&query=Pearl+Jam&action=Search',
 +
        "songs" => array(
 +
            array(
 +
                "title" => 'NO WAY',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/p/pearl_jam/yield/03-no_way.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'HUMMUS',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/p/pearl_jam/yield/14-hummus.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'LEASH',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/p/pearl_jam/vs./11-leash.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'GIVEN TO FLY',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/p/pearl_jam/rearviewmirror_greatest_hits_199/10-given_to_fly.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'NOTHING AS IT SEEMS',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/p/pearl_jam/rearviewmirror_greatest_hits_199/13-nothing_as_it_seems.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'SAVE YOU',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/p/pearl_jam/rearviewmirror_greatest_hits_199/16-save_you.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'EVEN FLOW',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/p/pearl_jam/rearviewmirror_greatest_hits_199/03-even_flow.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'ANIMAL',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/p/pearl_jam/rearviewmirror_greatest_hits_199/06-animal.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'REARVIEWMIRROR',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/p/pearl_jam/rearviewmirror_greatest_hits_199/09-rearviewmirror.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'SPIN THE BLACK CIRCLE',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/p/pearl_jam/rearviewmirror_greatest_hits_199/10-spin_the_black_circle.mp3',
 +
            ),
 +
        )
 +
    ),
 +
    32841 => array(
 +
        "name" => 'Bo Diddley',
 +
        "decades" => '(1950,1960,1970,1980,1990,2000)',
 +
        "city" => 'McComb',
 +
        "country" => 'US',
 +
        "link" => 'http://www.mp3.com/search.php?stype=artist&query=Bo+Diddley&action=Search',
 +
        "songs" => array(
 +
            array(
 +
                "title" => 'WHO DO YOU LOVE?',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/b/bo_diddley/guitar_legends/03-who_do_you_love%3F.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'ROAD RUNNER',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/b/bo_diddley/guitar_legends/06-road_runner.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'YOU CAN\'T JUDGE A BOOK BY IT\'S COVER',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/b/bo_diddley/guitar_legends/08-you_can_t_judge_a_book_by_it_s_c.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'OOH BABY',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/b/bo_diddley/guitar_legends/10-ooh_baby.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'DIDDLEY DADDY',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/b/bo_diddley/martin_scorsese_presents_the_blu/14-diddley_daddy.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'WHO DO YOU LOVE',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/b/bo_diddley/martin_scorsese_presents_the_blu/19-who_do_you_love.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'I\'M A MAN',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/b/bo_diddley/chess_blues_classics_1947_-_1956/12-i_m_a_man.mp3',
 +
            ),
 +
        ),
 +
    ),
 +
    84062 => array(
 +
        "name" => 'The Cult',
 +
        "decades" => '(1980,1990,2000)',
 +
        "city" => 'Bradford',
 +
        "country" => 'GB',
 +
        "link" => 'http://www.mp3.com/search.php?stype=artist&query=The+Cult&action=Search',
 +
        "songs" => array(
 +
            array(
 +
                "title" => 'THE WITCH (EDIT)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/the_cult/pure_cult_-_the_singles_1984-199/05-the_witch_edit.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'REVOLUTION (EDIT)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/the_cult/pure_cult_-_the_singles_1984-199/06-revolution_edit.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'LOVE REMOVAL MACHINE',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/the_cult/pure_cult_-_the_singles_1984-199/07-love_removal_machine.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'RAIN',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/the_cult/pure_cult_-_the_singles_1984-199/08-rain.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'IN THE CLOUDS',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/the_cult/pure_cult_-_the_singles_1984-199/09-in_the_clouds.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'COMING DOWN (EDIT)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/the_cult/pure_cult_-_the_singles_1984-199/10-coming_down_edit.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'EDIE (CIAO BABY) [EDIT]',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/the_cult/pure_cult_-_the_singles_1984-199/11-edie_ciao_baby_%5Bedit%5D.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'HEART OF SOUL (EDIT)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/the_cult/pure_cult_-_the_singles_1984-199/12-heart_of_soul_edit.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'WILD FLOWER',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/the_cult/pure_cult_-_the_singles_1984-199/13-wild_flower.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'STAR (EDIT)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/the_cult/pure_cult_-_the_singles_1984-199/14-star_edit.mp3',
 +
            ),
 +
        ),
 +
    ),
 +
    84430 => array(
 +
        "name" => 'Twisted Sister',
 +
        "decades" => '(1970,1980)',
 +
        "link" => 'http://www.mp3.com/search.php?stype=artist&query=Twisted+Sister&action=Search',
 +
        "songs" => array(
 +
            array(
 +
                "title" => 'LET THE GOOD TIMES ROLL/FEEL SO FINE (LIVE)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/twisted_sister/big_hits_and_nasty_cuts%3A_the_bes/16-let_the_good_times_roll_feel_so_.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'THE KIDS ARE BACK',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/twisted_sister/big_hits_and_nasty_cuts%3A_the_bes/06-the_kids_are_back.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'I AM (I\'M ME)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/twisted_sister/big_hits_and_nasty_cuts%3A_the_bes/03-i_am_i_m_me.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'YOU CAN\'T STOP ROCK \'N ROLL',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/twisted_sister/big_hits_and_nasty_cuts%3A_the_bes/05-you_can_t_stop_rock_n_roll.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'I WANNA ROCK',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/twisted_sister/big_hits_and_nasty_cuts%3A_the_bes/02-i_wanna_rock.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'I\'LL NEVER GROW UP, NOW!',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/twisted_sister/big_hits_and_nasty_cuts%3A_the_bes/09-i_ll_never_grow_up_now!.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'WE\'RE NOT GONNA TAKE IT',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/twisted_sister/feel_the_noiz_-_the_best_of_meta/01-we_re_not_gonna_take_it.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'THE PRICE',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/twisted_sister/feel_the_love_-_the_best_of_powe/12-the_price.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'LIKE A KNIFE IN THE BACK',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/twisted_sister/you_can_t_stop_rock_n_roll/02-like_a_knife_in_the_back.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'RIDE TO LIVE, LIVE TO RIDE',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/t/twisted_sister/you_can_t_stop_rock_n_roll/03-ride_to_live_live_to_ride.mp3',
 +
            ),
 +
        ),
 +
    ),
 +
    84221 => array(
 +
        "name" => 'The New York Dolls',
 +
        "decades" => '(1970)',
 +
        "city" => 'New York',
 +
        "country" => 'US',
 +
        "link" => 'http://www.mp3.com/search.php?stype=artist&query=The+New+York+Dolls&action=Search',
 +
        "songs" => array(
 +
            array(
 +
                "title" => 'HOOCHIE COOCHIE MAN',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/n/new_york_dolls/great_big_kiss/16-hoochie_coochie_man.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'GREAT BIG KISS',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/n/new_york_dolls/great_big_kiss/17-great_big_kiss.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'VIETNAMESE BABY',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/n/new_york_dolls/great_big_kiss/18-vietnamese_baby.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'BABYLON',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/n/new_york_dolls/great_big_kiss/19-babylon.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'RED PLANET LEATHER (LIVE)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/n/new_york_dolls/great_big_kiss/01-red_planet_leather_live.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'ON FIRE (LIVE)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/n/new_york_dolls/great_big_kiss/02-on_fire_live.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'SOMETHING ELSE (LIVE)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/n/new_york_dolls/great_big_kiss/03-something_else_live.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'DADDY ROLLING STONE (LIVE)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/n/new_york_dolls/great_big_kiss/04-daddy_rolling_stone_live.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'AIN\'T GOT NO HOME / DIZZY MISS LIZZIE (LIVE)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/n/new_york_dolls/great_big_kiss/05-ain_t_got_no_home_dizzy_miss_liz.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'GIRLS, GIRLS GIRLS (LIVE)',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/n/new_york_dolls/great_big_kiss/06-girls_girls_girls_live.mp3',
 +
            ),
 +
        ),
 +
    ),
 +
    118504 => array(
 +
        "name" => 'Marc Bolan',
 +
        "decades" => '(1960,1970)',
 +
        "city" => 'London',
 +
        "country" => 'GB',
 +
        "link" => 'http://www.mp3.com/search.php?stype=artist&query=Marc+Bolan&action=Search',
 +
        "songs" => array(
 +
            array(
 +
                "title" => 'JASPER C. DEBUSSY',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/m/marc_bolan/the_beginning_of_doves/01-jasper_c._debussy.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'HIPPY GUMBO',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/m/marc_bolan/the_beginning_of_doves/02-hippy_gumbo.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'MISFIT',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/m/marc_bolan/the_beginning_of_doves/03-misfit.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'THE LILAC HAND OF MENTHOL DAN',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/m/marc_bolan/the_beginning_of_doves/04-the_lilac_hand_of_menthol_dan.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'BLACK AND WHITE INCIDENT',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/m/marc_bolan/the_beginning_of_doves/05-black_and_white_incident.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'JASMINE \'49',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/m/marc_bolan/the_beginning_of_doves/06-jasmine_49.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'CAT BLACK',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/m/marc_bolan/the_beginning_of_doves/07-cat_black.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'YOU GOT THE POWER',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/m/marc_bolan/the_beginning_of_doves/08-you_got_the_power.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'EASTERN SPELL',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/m/marc_bolan/the_beginning_of_doves/09-eastern_spell.mp3',
 +
            ),
 +
            array(
 +
                "title" => 'CHARLIE',
 +
                "link" => 'http://mtgdb.iua.upf.edu/total/audio/mp3/m/marc_bolan/the_beginning_of_doves/10-charlie.mp3',
 +
            ),
 +
        ),
 +
    ),
 +
);
 +
?>
 +
 
 +
 
 +
 
 +
</source>
 +
 
 +
}}
  
 
;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'''''
 
;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'''''
Línea 452: Línea 588:
 
*La posición '''''title''''' es un string con el título de la canción
 
*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)
 
*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>
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio1 | Solución]]</font>
 
<hr />
 
<hr />
 
-->
 
-->
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio8|Ejercicio 8 : Canales de tv]]===
 +
<br />
 +
<div id=parrafo>
 +
{{MRM_Actividad|Title=Ejercicio 8 : Canales de TV|
 +
;Accedemos al siguiente fichero json que contiene canales de tv
 +
:La ubiciación del fichero en github: https://github.com/MAlejandroR/json_tv
 +
:Primero cargamos el fichero y lo convertimos en un array asociativo
 +
Para acceder al contenido de un fichero en git, debemos acceder a esta '''url'''
 +
<source lang=php>
 +
$url=  "https://raw.githubusercontent.com/MAlejandroR/json_tv/main/tv.json";
 +
$contenido = file_get_contents($url);
 +
</source>
 +
:Posteriormente vamos a cargar canales de tv en nuestra web
 +
* Lo Primero cargamos el fichero y lo convertimos en un array asociativo
 +
 +
*Para acceder al contenido de un fichero en git, debemos
 +
 +
<source lang=php>
 +
$url=  "https://raw.githubusercontent.com/MAlejandroR/json_tv/main/tv.json";
 +
$contenido = file_get_contents($url);|
 +
 +
</source>
 +
 +
*En este caso usamos una función nueva que no hemos visto que nos permitirá ver el contenido de un fichero
 +
### Convertir un json a un array asociativo
 +
 +
*En php podemos convertir el fichero json en array asociativo  con la función **json_decode($nombre_json, 1)**
 +
 +
Uniendo todo esto podríamos crearnos una función  para obtener el array.
 +
<source lang=php>
 +
function obtener_arrays_canales() 
 +
 +
    $url = "https://raw.githubusercontent.com/MAlejandroR/json_tv/main/tv.json"; 
 +
    $contenido = file_get_contents($url); 
 +
    $contenido = json_decode($contenido, 1); 
 +
    return $contenido; 
 +
 
 +
}
 +
</source>
 +
 +
*Hasta aquí para tener el array de los canales. Ahora se trata de trabajar con este array
 +
 +
* El objetivo final :
 +
# Obtener un listado de todos los canales agrupados por temática.
 +
# De cada canal veremos la imagen
 +
# Al clikcar  en la imagen nos llevará al  enlace establecido
 +
 +
[[Archivo:array_tv1.png]]
 +
 +
 +
 +
[[Archivo:array_tv.png]]
 +
<source lang=php>
 +
 +
</source>
 +
}}
 +
</div>

Última revisión de 09:10 19 dic 2023





Icon activity.jpg

Array de colores

Creamos un array con 5 colores y posteriormente mostramos un título con cada uno de esos colores






Icon activity.jpg

Selecionar un elemento aleatorio de un array

En el caso anterior, seleccionamos un elemento aleatorio del array y mostramos de ese color el título





Ejercicio 1 : Recorrer un array básico



Icon activity.jpg

Ejercicio 1: Recorrer una array básico

  • Crea un array indexado con 5 valores de países y recórrelo con un for
  • Ahora crea un array con 5 países como índice y sus correspondiente capitales como valores
  • Después recorrelo con un foreach






Ejercicio 2 : Manipulando un array



Icon activity.jpg
Ejercicio 2: Manipulando un array
Asignando y elmininando valores
  • Creamos un array asingnándole 5 valores de forma indexada
  • Asigna valores entero, cadenas, y la quinta posición que sea otro array de tres elementos
  • Lo visualizamos con un var_dump
  • Agregamos valores en posiciones 15 y 30
  • Lo visualizamos con un var_dump
  • Eliminamos los índices vacíos de forma que quede compacto (sin usar funciones)
    • Es decir las desaparecen las posiciones 15 y 30
    • Sus valores se mantienen en las posicones 5 y 6




Ejercicio 3 : Crear un array de notas



Icon activity.jpg
Ejercicio 3 : Crear un array de notas

Crea un array con 10 notas aleatorias y posteriormente las visualizas obteniendo los valores estadísticos de la media, máxima y mínima

  • Hazlo de forma algorítmica, sin usar funciones de arrays




Ejercicio 4 : Usando funciones de arrays



Icon activity.jpg
Ejercicio 4 : Usando funciones de array

Repite el ejercicio anterior usando funciones para todas las acciones

  • Crea un array de notasde 15 alumnos Inicializadas con 0
  • Asiga a cada nota un valor aleatorio entre 5 y 10
  • Visualiza el array y verfica sus valores
  • Obtener la nota máxima, la mínima y la media del array
Ahora continuamos usando más funciones vistas en la teoría
  • Crea otro array de notas de 15 alumnos con notas entre 0 y 5
  • Junta los dos array en uno solo
  • Vuelve a realizar las acciones anteriores (max, min y media)
  • Recorre el array con un foreach
  • REaliza el recorrido con las funciones de recorrido especificadas anteriormente, mostrando en cada caso el ínice y valor (next, reset, current, key)
  • Busca el primer 10 en el array y devuelve su posición
  • Confirma si hay un 7 y un 4 como valores dentro del array
  • Ordena el array ascendentemente y muéstralo
  • Ordena el array descendentemente y muéstralo
  • Elimina valores repetidos y muéstralos




Ejercicio 5 : Imágenes aleatorias



Icon activity.jpg
Ejercicio 5 : Imágenes aleatorias
  • Crea un array con imagenes aleatorias y luego haz que se carguen cada 5 segundos de forma aleatoria.
  • Es muy importante que las 3 imágenes no se puedan repetir, que sean diferentes
Icon present.gif
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">
Como array de imágenes podemos tomar estas
$array=[
"https://es.wikieducator.org/images/3/3d/Ajax_cliente_servidor.png",
 
"https://es.wikieducator.org/images/7/7b/Funcionamiento_ajax.png",
"https://es.wikieducator.org/images/a/aa/Angular_app_base.png",
"https://es.wikieducator.org/images/3/3d/Docker_distancia_1.png",
 
"https://es.wikieducator.org/images/4/4e/Opcion_Instalar.png",
"https://es.wikieducator.org/images/a/ab/AplicacionWeb.png",
"https://es.wikieducator.org/images/e/e4/Red3.png",
"https://es.wikieducator.org/images/f/f2/DACTW.png",
"https://es.wikieducator.org/images/e/e5/M3_web.png",
"https://es.wikieducator.org/images/a/a6/Ficheros.jpeg"];





Ejercicio 6 : Tienda de verduras



Icon activity.jpg
Ejercicio 6 : 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




Ejercicio 7 : Accesos de usuario



Icon activity.jpg
Ejercicio 7 : Accesos de usuario
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




Ejercicio 8 : Array multinivel



Icon activity.jpg
Ejercicio 8 : Array multinivel
Vamos a realizar un recorrido de un array asociativo de varios niveles.
Realizaremos un estudio del array y luego lo recorreremos
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
  1. 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
  2. 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
Ficheros

Artista.pdf Este fichero es un css para el ejercicios Contenido del ArrayAsociativo.php

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

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)



Ejercicio 8 : Canales de tv



Icon activity.jpg
Ejercicio 8 : Canales de TV
Accedemos al siguiente fichero json que contiene canales de tv
La ubiciación del fichero en github: https://github.com/MAlejandroR/json_tv
Primero cargamos el fichero y lo convertimos en un array asociativo

Para acceder al contenido de un fichero en git, debemos acceder a esta url

$url=  "https://raw.githubusercontent.com/MAlejandroR/json_tv/main/tv.json";
$contenido = file_get_contents($url);
Posteriormente vamos a cargar canales de tv en nuestra web
  • Lo Primero cargamos el fichero y lo convertimos en un array asociativo
  • Para acceder al contenido de un fichero en git, debemos
$url=  "https://raw.githubusercontent.com/MAlejandroR/json_tv/main/tv.json";
$contenido = file_get_contents($url);|
  • En este caso usamos una función nueva que no hemos visto que nos permitirá ver el contenido de un fichero
      1. Convertir un json a un array asociativo
  • En php podemos convertir el fichero json en array asociativo con la función **json_decode($nombre_json, 1)**

Uniendo todo esto podríamos crearnos una función para obtener el array.

function obtener_arrays_canales()  
{  
    $url = "https://raw.githubusercontent.com/MAlejandroR/json_tv/main/tv.json";  
    $contenido = file_get_contents($url);  
    $contenido = json_decode($contenido, 1);  
    return $contenido;  
 
}
  • Hasta aquí para tener el array de los canales. Ahora se trata de trabajar con este array
  • El objetivo final :
  1. Obtener un listado de todos los canales agrupados por temática.
  2. De cada canal veremos la imagen
  3. Al clikcar en la imagen nos llevará al enlace establecido

Array tv1.png


Array tv.png