Académique Documents
Professionnel Documents
Culture Documents
OBJETIVOS
PROCEDIMIENTO
¿Qué es un array?
Un array es sencillamente una tabla de valores. Cada uno de ellos se identifica y se asigna
mediante una variable ($nombre) seguida de un par de ([ ]) que contiene el índice del array.
El índice puede ser escalar -equivaldría al número de fila de la tabla, por poner un ejemplo- o
puede ser asociativo que equivaldría en alguna medida al nombre de la fila de la tal tabla.
Arrays escalares:
Los elementos de un array escalar puede escribirse usando la siguiente sintaxis:
En el primero de los casos, PHP asigna automáticamente como índice el valor siguiente al
último asignado. Si es el primero que se define, le pondrá como índice 0 (CERO). En el
segundo de los casos, seremos nosotros quienes pongamos (xx) el número correspondiente al
valor del índice.
Si al índice ya se le hubiera asignado un valor, cambiará el valor de la variable, en caso
contrario creará un nuevo elemento del array.
Arrays asociativos
Los elementos de un array asociativo puede escribirse usando la siguiente sintaxis:
$a["indice"]=valor
En este caso, el índice será una cadena y se escribirá entre comillas.
Arrays bidimensionales
Un array bidimensional recoge valores de una tabla de doble entrada. Cada uno de los
elementos se identifica y se asigna mediante una variable ($nombre) seguida de dos ([ ]) que
contienen los índices del array.
Los índices puede ser escalares -equivaldrían al número de fila y columna que la celda
ocuparía en la tabla, o puede ser asociativo que equivaldría en alguna medida a usar como
índices los nombres de la fila y de la columna.
Arrays escalares
Los elementos de un array bidimensional escalar puede escribirse usando la siguiente sintaxis:
En el primero de los casos, PHP asigna automáticamente como primer índice el valor siguiente
al último asignado a ese mismo índice. Si es el primero que se define, le pondrá como índice 0
(CERO). Con la sintaxis del primer supuesto, al segundo índice le asignará cero ya que es en
este mismo momento cuando se habrá creado el primer índice y por tanto aún carecerá de
elementos.
En el segundo de los casos, si somos nosotros quienes asignamos valor al primer índice (xx)
será el segundo quien se incremente en una unidad respecto al de valor más alto de todos
aquellos cuyo primer índice coincide con el especificado.
La tercera opción es similar a la anterior y en la cuarta se pueden asignar libremente cada uno
de los índices (xx e yy) poniendo valores numéricos.
Arrays asociativos
Los elementos de un array asociativo BIDIMIENSIONAL puede escribirse usando la siguiente
sintaxis:
$a["indice1"]["indice2"]=valor
En este caso, los índice serán cadenas y se escribirán entre comillas.
Arrays multidimensionales
PHP permite el uso de arrays de dimensiones superiores a dos. Bastaría con añadir corchetes
para modificar la dimensión del array.
$a[x][y][z]=valor;
asignar a un valor al elemento de índices x, y y z de un array tridimensional y
$a[x][y][z][w]=valor;
También podrían utilizarse índices asociativos sin más que introducir dentro de los corchetes
las cadenas de asignación de índices, como siempre entre comillas.
La función array();
Para asignar valores a una matriz puede usarse la función array() que tiene la siguiente
sintaxis:
$a= array (
indice 0 => valor,
..... ,
indice n => valor,
);
Por ejemplo:
$z=array (
0 => 2,
1 => "Pepe",
2 => 34.7,
);
produciría el mismo resultado que escribir:
$z[0]=2;
$z[1]="Pepe";
$z[2]=34.7;
Anidando en array();
La función array() permite escribir arrays de cualquier dimensión utilizando la técnica de
anidado.
$z=array(
0 => array (
0 => 34,
1 => 35,
2 => 36,
),
1 => array (
0 => 134,
1 => 135,
2 => 136,
)
);
Como puede observarse se trata de sustituir los valores asignados a los elementos de una
primera función array() por otra nueva función array que contiene los segundos índices así
como los valores asignados a los mismos.
El anidado sucesivo permitiría generar una matriz de cualquier dimensión.
Aunque en el ejemplo anterior nos hemos referido a un array escalar idéntico procedimiento
sería válido para arrays asociativos sin más que cambiar los índices por cadenas escritas entre
comillas.
Foreach
El bucle foreach permite el recorrido de elementos complejos como las matrices de una forma
sencilla. La sentencia foreach permite directamente recorrer cada uno de los elementos y
asignarles un nombre que sea más sencillo de procesar.
Como verán es más optimo en este caso usar foreach que el simple For.
La sentencia Foreach admite otra sintaxis para permitir recorres arrays asociativos y recuperar
simultáneamente la clave y el valor de cada elemento.
El funcionamiento de esta función se basa en el hecho de que cada vez que se recupera el
siguiente para, se introduce el valor en la variable de nombre $Valor y el valor de la clave en la
variable de nombre $Clave.
Ejemplo.
<?php
Hay que observar que en el programa anterior, una vez obtenida la clave, el elemento puede
ser referenciado dentro del bucle foreach como $autor o como $Nombre [$clave]
Manejando funciones
PHP dispone de una herramienta llamada función. Una función es un trozo de código, que
permite desarrollar una tarea concreta y bien definida, que se encuentra separado del resto de
las funciones del programa, al que se le ha dado un nombre para poder referenciarlas. A través
de este se puede llamar a la función cada vez que sea necesario. La sintaxis es la siguiente.
Function nombredelafunción ($parametro1, $parametro2, ...$parametroN).
Al ser llamada con esta sintaxis, se ejecutan las instrucciones contenidas en la función.
Aunque en versiones anteriores de PHP era necesario definir la función antes de invocarla, a
partir de la versión 4 no es necesaria esa organización secuencial.
La función y la llamada pueden estar escritas en cualquier parte del documento. En el tercero
de los ejemplos, la llamada a la función está escrita antes de definir la función.
En la function a1() del ejemplo, puedes comprobar este extremo y en la function a2() puedes
comprobar como asignado ámbito global SI toma los valores de esa variable.
Una de las formas de asignar valores a las variables internas es definir variables y valores
dentro del paréntesis que va detrás de function nombre, así por ejemplo:
function p1($a=2,$b=5)
Esos valores - 2 y 5 - serían utilizado por la función independientemente de que las variables
$a y/o $b pudieran contener otros distintos en el ámbito externo de la función.
Otra forma de asignación de valores a las variables internas de una función es pasar los
parámetros por valor. Para hacerlo la sintaxis es la siguiente:
En la definición de la función deben incluirse tantas variables como valores distintos pretendan
pasarse. Por ejemplo:
function p1($a,$b)
prepararía la función para recibir dos valores pero requeriría que además, en la llamada a la
función se escribieran esos dos valores separados por comas. Por ejemplo:
p1(47,-32)
Una variante del ejemplo anterior, sería sustituir -en la llamada a la función- las constantes por
variables predefinidas tal como puede verse en la función a5 de los ejemplos.
Traspaso de parámetros
Para pasar un parámetro a una función, es necesario que esta lo tenga definido en la
declaración de la función. Para definir un parámetro en una función, simplemente hay que
poner el nombre que se le quiere dar al parámetro, siguiendo las reglas de la definición de
variables, en la lista de parámetros de la función.
Ejemplo
Function tres($nombre)
{
if ($nombre == “Sara”)
{return 18;}
else
{return ( rand(100) );}
}
y esto funciona muy bien en la mayoría de los problemas que tenemos que resolver mediante
las funciones. Pero que pasa si necesitamos que una función devuelva mas de una valor. Para
estas ocasiones es necesario crearse una matriz que contenga los valores y que la función
devuelva dicha matriz.
Function ejemplo3($uno)
{
codigo de la función;
return array($valor1, $valor2, $valor3);
}
Hay que recordar que existen variables locales y variables globales. Para declarar una variable
local solo vasta con hacer lo siguiente:
$variable1 = ”Rodrigo”;
y para acceder a esta matriz de variables globales se le debe de llamar de la siguiente forma:
$GLOBALS [$variableglobal3]
Variables Global
Mediante una declaración de variables globales, dentro de una función, permitimos que dicha
función pueda acceder a variables externas a la misma:
<?php
function mifuncion()
{
global $pais;
echo $pais;
}
$pais = "España";
mifuncion();
echo $pais;
?>
Variables estáticas
Una variable estática solo existe sólo en el ámbito local de una función y permite que la variable
no pierda su valor cuando la ejecución del programa abandona ese ámbito. De esta forma
cuando se vuelve a llamar la función, todas la variables que se declararon como estáticas
recuperan su valor con el que terminaron en la llamada anterior de la misma función.
Ejemplo:
<HTML>
<HEAD><TITLE>Ejemplo de variables estáticas</TITLE></HEAD>
<BODY>
<?php
function contar()
{
static $contador;
$local = 0;
for ($i = 1; $i < 3; $i++)
{
echo "Ejecuto un bucle. Voy por la iteración $i <BR>\n";
$local ++;
$contador++;
}
?>
</BODY>
</HTML>
Una manera de forzar que la función modifique los valores externos de la variable es lo que se
llama en argot «pasar por referencia»
El & puede anteponerse tanto en la definición de la función -fíjate en la función a2 del ejemplo
61 - como en la llamada a la función, tal como puedes ver en el caso de a3 en el ejemplo
anterior.
La segunda de las opciones nos concede mayor libertad ya que nos permite usar una sola
función y decidir en las llamadas la forma de pasar los parámetros, con lo cual una misma
función puede ser llamada tanto por valores como por referencia.
1. Elabore un programa que lea una lista de nombres de aves en cualquier orden y luego
las ordene en orden alfabético.
2. En la empresa constructora Simón S.A. se tienen registradas las horas trabajadas por
sus obreros en cada uno de los 6 días laborales de la semana. Diseñe un programa
que lea los datos y luego calcule lo siguiente:
3. Utilizando arrays crear un script que funcione como una agenda personal, el arreglo
deberá de tener los siguientes elementos (Nombre completo del contacto, teléfono
casa, teléfono celular, dirección, mail). El escript contara con opciones de navegación
para mostrar los registros (Ir al primer, Ir al ultimo, Ir al anterior e Ir al siguiente) Mínimo
10 Registros.
4. Crear una función que calcule el factorial de un numero entre 1 y 69 si se ingresa otro
numero que no esta en este rango mandar un mensaje.
7. Crear una funcion que muestre cualquier tabla de multiplicar dado el numero por el
usuario.