PHP
Main Menu 
 
Desarrollo de Páginas Web con PHP 

Las tablas (o array en ingles), son muy importantes en PHP, ya que generalmente, las funciones que devuelven varios valores, como las funciones ligadas a las bases de datos,  lo hacen en forma de tabla.

En PHP disponemos de dos tipos de tablas. El primero seria el clasico, utilizando Indices:

<?php

$ciudad[] = "Paris";

$ciudad[] = "Roma";

$ciudad[] = "Sevilla";

$ciudad[] = "Londres";

print ("yo vivo en " . $ciudad[2] . "<BR>\n");

?>

Esta es una forma de asignar elementos a una tabla, pero una forma mas formal es utilizando la funcion array

<?php 

$ciudad = array("Paris", "Roma", "Sevilla", "Londres");

//contamos el numero de elementos de la tabla

$numelentos = count($ciudad);

//imprimimos todos los elementos de la tabla

for ($i=0; $i < $numelentos; $i++)

{

print ("La ciudad $i es $ciudad[$i] <BR>\n");

}

?>

Sino

?>

Sino se especifica, el primer indice es el cero, pero podemos utilizar el operador => para especificar el indice inicial.

$ciudad = array(1=>"Paris", "Roma", "Sevilla", "Londres");

Un segundo tipo, son las tablas asociativas, en las cuales a cada elemento se le asigna un valor (key) para acceder a el.

Para entenderlo, que mejor que un ejemplo, supongamos que tenemos una tabla en la que cada elemento almacena el numero de visitas a nuestra web por cada dia de la semana. 

Utilizando el metodo clasico de indices, cada dia de la semana se representaria por un entero, 0 para lunes, 1 para martes, etc.

$visitas[0] = 200;

$visitas[1] = 186;

si usamos las tablas asociativas seria

$visitas["lunes"] = 200;

$visitas["martes"] = 186;

o bien,

$visitas = array($visitas = array("lunes"=>200; "martes"=>186);

Ahora bien, recorrer una tabla y mostrar su contenido es sencillo utilizando los indices, pero como hacerlo en las tablas asociativas?. La manipulacion de las tabas asociativas se a hace atraves de funciones que actuan sobre un puntero interno que indica la posicion. Por defecto, el puntero se situa en el primer elemento añadido en la tabla, hasta que es movido por una funcion:

current - devuelve el valor del elemento que indica el puntero
pos         - realiza la misma funcion que current
reset     - mueve el puntero al primer elemento de la tabla
end         - mueve el puntero al ultimo elemento de la tabla
next       - mueve el puntero al elemento siguiente
prev       - mueve el puntero al elemento anterior
count     - devuelve el numero de  elementos de una tabla.

 

Veamos un ejemplo de las funciones anteriores:

<?php

$semana = array("lunes", "martes", "miercoles", "jueves", "viernes", "sabado", "domingo");

echo count($semana); //7

//situamos el puntero en el primer elemento

reset($semana);

echo current($semana); //lunes

next($semana);

echo pos($semana); //martes

end($semana)

echo pos($semana); //domingo

prev($semana);

echo current($semana); //sábado

?>

Recorrer una tabla con las funciones anteriores se hace un poco lioso, para ello se recomienda utilizar la funcion each().

<?.

<?php  

$visitas = array("lunes"=>200, "martes"=>186, "miercoles"=>190, "jueves"=>175);

reset($visitas);

while (list($clave, $valor) = each($visitas))

{

echo "el dia $clave ha tenido $valor visitas<BR>";

}

?>

La funcion each()devuelve el valor del elemento actual, en este caso, el valor del elemento actual y su clave, y desplaza el puntero al siguiente, cuando llega al final devuelve FALSO, y termina el bucle while().

Tablas multidimensionales

Las tablas multidimensionales son simplemente tablas en las cuales cada elemento es a su vez otra tabla.

<?php

$calendario[] = array (1, "enero", 31);

$calendario[] = array (2, "febrero", 28);

$calendario[] = array (3, "marzo", 31);

$calendario[] = array (4, "abril", 30);

$calendario[] = array (5, "mayo", 31);

 

while (list($clave, $valor ) = each($calendario)){

{

$cadena = $varlor[1];

$cadena .= " es el mes numero " . $valor[0];

$cadena .= "y tiene " . $varlor[2] . " dias<BR>";

echo $cadena;

}

?>

La funcion list() es mas bien un operador de asignacion lo que hace es asignar valores a unas lista de variables. En este caso los valores son extraidos de una tabla por la funcion each().