Diferencia entre revisiones de «Usuario:ManuelRomero/php/arrays/concepto»
De WikiEducator
< Usuario:ManuelRomero | php
Saltar a: navegación, buscar
Línea 14: | Línea 14: | ||
{{Definicion|Un array es un tipo de datos que nos permite almacenar varios valores. }} | {{Definicion|Un array es un tipo de datos que nos permite almacenar varios valores. }} | ||
*Cada miembro del array se almacena en una posición a la que se hace referencia utilizando un valor clave. | *Cada miembro del array se almacena en una posición a la que se hace referencia utilizando un valor clave. | ||
− | [Archivo:array.png] | + | [[Archivo:array.png]] |
</div> | </div> | ||
Línea 27: | Línea 27: | ||
$modulos2 = array("PR" => "Programación", "BD" => "Bases de datos", ..., "DWES" => "Desarrollo web en entorno servidor"); | $modulos2 = array("PR" => "Programación", "BD" => "Bases de datos", ..., "DWES" => "Desarrollo web en entorno servidor"); | ||
</source> | </source> | ||
− | [Archivo:array2.png] | + | [[Archivo:array2.png]] |
;Tipos de array: Arrays numéricos | ;Tipos de array: Arrays numéricos | ||
:En función de su clave pueden ser indexados (clave numérica) o asociativos (Clave con valor). | :En función de su clave pueden ser indexados (clave numérica) o asociativos (Clave con valor). |
Revisión de 00:24 14 feb 2015
LENGUAJE PHP: ARRAYS O VECTORES: ESTRUCTURA DE DATOS COMPUESTA
¡El servidor te responde
PHP Un lenguaje de script al lado del servidor
Arrays
- Un tipo de datos compuesto es aquel que te permite almacenar más de un valor.
- En PHP puedes utilizar dos tipos de datos compuestos: el array y el objeto.
- Los objetos los veremos más adelante.
- Cada miembro del array se almacena en una posición a la que se hace referencia utilizando un valor clave.
- Las claves pueden ser numéricas o asociativas.
// array numérico $modulos1 = array(0 => "Programación", 1 => "Bases de datos", ..., 9 => "Desarrollo web en entorno servidor"); // array asociativo $modulos2 = array("PR" => "Programación", "BD" => "Bases de datos", ..., "DWES" => "Desarrollo web en entorno servidor");
- Tipos de array
- Arrays numéricos
- En función de su clave pueden ser indexados (clave numérica) o asociativos (Clave con valor).
- Ahora comentaremos los arrays indexados
- En los arrays numéricos empezamos por 0
- En funcion del tipo de índices que tenga puede ser unidimensional o multidimensional (varios índices).
Crear un array
- Podemos usar el operador array();
- A partir de la versión 5.3 se puede directamente usar el operador []
- Vemos como crear un array
$notas =[]; o bien $notas = array();
</source>
$capitales = array(); $capital ["españa"=>"madrid", "italia"=>"roma","Alemania"=>"Berlin"];
- Es lo mismo que hacer
$capitales = array("españa"=>"madrid", "italia"=>"roma","Alemania"=>"Berlin"); $capital ["españa"=>"madrid", "italia"=>"roma","Alemania"=>"Berlin"]; *También se puede crear directamente co [] <source lang=php> $capitales["españa"]="madrid"; $capitales[["italia"]="roma" $capitales["Alemania"]="Berlin";
- Existen muchas funciones asociadas a los arrays
- count($array) me da el número de elementos
<?php //defino e inicializo el vector $ciudades[0]="Valencia"; $ciudades[]="Teruel"; $ciudades[]="Burgos"; $ciudades[]="Zaragoza"; $ciudades[]="Huesca"; //Obtengo el número de elementos $num= count($ciudades); echo "hay $num ciudades"; for ($n=0; $n<$num; $n++){ echo "ciudad $n es $ciudades[$n]<br>"; } ?>
Ver el contenido de un array
- Podemos usar la función ya conocida var_dump()
- También podemos usar la fucnion print_r.
Funciones para manejar matrices
- Tamaño: count(), sizeof()
- Operador +: concatena dos matrices
- Recorrer una matriz next(), prev(), reset(), current(),key(), reset()
- busqueda preg_grep(), array_search(), in_array()
- Ordenar sort()
- Aquí tenemos un listado de todas las funciones, hay muchas muchas http://es1.php.net/manual/en/ref.array.php
- Para hacer referencia a los elementos almacenados en un array, tienes que utilizar el valor clave entre corchetes:
$modulos1 [9] $modulos2 ["DWES"]
- Es interesante recordar que en PHP puedes crear también arrays de varias dimensiones almacenando otro array en cada uno de los elementos de un array.
// array bidimensional $ciclos = array( "DAW" => array ("PR" => "Programación", "BD" => "Bases de datos", ..., "DWES" => "Desarrollo web en entorno servidor"), "DAM" => array ("PR" => "Programación", "BD" => "Bases de datos", ..., "PMDM" => "Programación multimedia y de dispositivos móviles") );
- Para hacer referencia a los elementos almacenados en un array multidimensional, debes indicar las claves para cada una de las dimensiones:
$ciclos ["DAW"] ["DWES"]
- En PHP no es necesario que indiques el tamaño del array antes de crearlo.
- Ni siquiera es necesario indicar que una variable concreta es de tipo array.
- Como ya hemos visto, simplemente puedes comenzar a asignarle valores:
// array numérico $modulos1 [0] = "Programación"; $modulos1 [1] = "Bases de datos"; ... $modulos1 [9] = "Desarrollo web en entorno servidor"; // array asociativo $modulos2 ["PR"] = "Programación"; $modulos2 ["BD"] = "Bases de datos"; ... $modulos2 ["DWES"] = "Desarrollo web en entorno servidor";
- En PHP tampoco es necesario que especifiques el valor de la clave.
- Al omitirla el array se irá llenando a partir de la última clave numérica existente, o de la posición 0 si no existe ninguna:
$modulos1 [ ] = "Programación"; $modulos1 [ ] = "Bases de datos"; ... $modulos1 [ ] = "Desarrollo web en entorno servidor";
<?php $notas = array(); $tamano = rand(1,50); //Ahora rellenamos el valor de $tamano posiciones del vector for ($n=0; $n<$tamano;$n++){ $notas[$n] = rand(1,10); } //recorremos calculando minimo, maximo y media unset($notas[5]); //El primer valor del vector inicializa las variables $min = $notas[0]; $max = $notas[0]; $suma = $notas[0]; for ($n=1; $n<count($notas) ;$n++){ if ($min>$notas[$n]) $min=$notas[$n]; if ($max<$notas[$n]) $max=$notas[$n]; $suma+=$notas[$n]; } echo "La nota máxima es $max<br>"; echo "La nota mínima es $min<br>"; echo "La nota media es es". ($suma/$n); ?>
|
Random Images
ejemplo, este trozo de código HTML y añadirlo en el <HEAD> de la página: <META HTTP-EQUIV=Refresh CONTENT="5; URL=vuestra_pagina.php"> </html>
|
<!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="5" url="index.php"/> <title></title> </head> <body> <?php $imagenes = 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" ); $n1=rand(0,9); $n2=rand(0,9); $n3=rand(0,9); echo "<img src=$imagenes[$n1]><img src=$imagenes[$n2]><img src=$imagenes[$n3]>"; ?> </body> </html>
Variables globales Vs superglobales
- Ya hemos visto como en php una variable tiene el ámbito en el cual es accesible y visible
- Las variables son locales a la función en la cual aparecen, si queremos acceder dentro de una función a una variable del script y actuar sobre su valor, debemos hacerla global.
- PHP Dispone un un importante conjunto de variables superglobales.
- El desarrollador tiene acceso a dichas variables en cualquier momento del script.
- El sistema se encarga de tenerlas actualizadas, con el valor correspondiente
- PHP incluye unas Son variables internas predefinidas que pueden usarse desde cualquier ámbito, por lo que reciben el nombre de variables superglobales.
- No es necesario que uses global para acceder a ellas.
- Cada una de estas variables es un array que contiene un conjunto de valores
- Posteriormente veremos cómo se utilizan los arrays).
- Aquí puedes acceder a las variables superglobales disponibles en PHP se pueden ver son las siguientes:
- Son las siguientes
- $GLOBALS Hace referencia a todas las variables disponibles en el ámbito global
- $_SERVER Información del entorno del servidor y de ejecución
- $_GET Variables HTTP GET
- $_POST Variables HTTP POST
- $_FILES Variables de Carga de Archivos HTTP
- $_COOKIE Cookies HTTP
- $_SESSION Variables de sesión
- $_REQUEST Variables HTTP REQUEST. Un array asociativo que por defecto contiene el contenido de $_GET, $_POST y $_COOKIE.
- $_ENV
- Analizaremos una de ellas
- $_SERVER.
- Contiene información sobre el entorno del servidor web y de ejecución. Entre la información que nos ofrece esta variable, tenemos:
- Principales valores de la variable $_SERVER
- $_SERVER['PHP_SELF']: script que se está ejecutando actualmente.
- $_SERVER['SERVER_ADDR']: dirección IP del servidor web.
- $_SERVER['SERVER_NAME']: nombre del servidor web.
- $_SERVER['DOCUMENT_ROOT']: directorio raíz bajo el que se ejecuta el guión actual.
- $_SERVER['REMOTE_ADDR']:dirección IP desde la que el usuario está viendo la página.
- $_SERVER['REQUEST_METHOD']:método utilizado para acceder a la página ('GET', 'HEAD', 'POST' o 'PUT')
<?php $datos = $_SERVER; foreach ($datos as $indice => $valor){ echo ("Valor de $indice es $valor<br>"); } ?>