martes, 8 de mayo de 2012

Tablas o Arrays

1. Uso de Arrays

Un array en PHP es realmente un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo es optimizado para varios usos diferentes; puede ser usado como una matriz real, una lista (vector), una tabla asociativa (una implementación de un mapa), diccionario, colección, pila, cola, y posiblemente más. Ya que los valores de un array pueden ser otros arrays, árboles y también son posibles arrays multidimensionales.

Una explicación sobre tales estructuras de datos está fuera del alcance de este manual, pero encontrará al menos un ejemplo de cada uno de ellos. Para más información, consulte la extensa literatura que existe sobre este amplio tema.

Especificación con array()

Un array puede ser creado usando el constructor del lenguaje array(). Éste toma un cierto número de parejas clave => valor como argumentos.

array(
    clave  => valor,
    clave2 => valor2,
    clave3 => valor3,
    ...
)
Ejemplo:

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// a partir de PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>



2. Tipos de Declaraciones





3. Tipos de Arrays

En una variable tenemos la posibilidad de almacerar una estructura de datos compleja; para ello podemos asignarle, en vez de un dato simple, otro más complejo conocido como array.
Estos arrays son datos capaces de albergar otros datos, y poder acceder a ellos a través de un índice.
En primer lugar tenemos los arrays más simples, los que solo pueden albergar datos simples y con un índice numérico (índice por defecto en PHP).
En segundo lugar tenemos los arrays asociativos, cuyo índice ya no es numérico, sinó que tendrá los valores que nosotros le demos.
Por último tenemos los arrays más complejos, que se hacen llamar arrays multidimensionales. Éstos, a su vez, pueden ser asociativos o no serlo.
Estos últimos son los que nos dan la posibilidad realmente de almacerar una estructura compleja de datos en una sola variable.



4. Funciones útiles para el manejo de Arrays
Entre las diferentes funciones para trabajar con un array tenemos:

array_change_key_case — Devuelve una matriz con todas las claves de las cadenas convertidas a mayúsculas o minúsculas
array_chunk — Divide una matriz en segmentos
array_combine — Crea una nueva matriz, usando una matriz para las claves y otra para sus valores
array_count_values — Cuenta todos los valores de una matriz
array_diff_assoc — Comprueba las diferencias entre matrices teniendo en cuenta los índices
array_diff_key — Calcula la diferencia de matrices usando las llaves para la comparación
array_diff_uassoc — Computa la diferencia entre matrices con un chequeo adicional de índices, el cual es realizado por una llamada de retorno entregada por el usuario
array_diff_ukey — Calcula la diferencia de matrices usando callback function on the keys for comparison
array_diff — Comprueba las diferencias entre matrices
array_fill_keys — Fill an array with values, specifying keys
array_fill — Llena una matriz con valores
array_filter — Filtra elementos de una matriz mediante una función “callback”
array_flip — Intercambia los valores de una matriz con sus índices
array_intersect_assoc — Calcula la intersección de matrices verificando que también coincidan los índices
array_intersect_key — Calcula la intersección de matrices usando las llaves para la comparación
array_intersect_uassoc — Calcula la intersección de matrices con chequeo de índices adicional por una función de usuario
array_intersect_ukey — Calcula la intersecció de matrices usando una función de usuario para la comparación de los índices
array_intersect — Calcula la intersección de matrices
array_key_exists — Comprueba si el índice o clave dada existe en la matriz
array_keys — Devuelve todas las claves de una matriz
array_map — Aplica la llamada de retorno especificada a los elementos de las matrices dadas
array_merge_recursive — Une dos o más matrices recursivamente
array_merge — Combina dos o más matrices
array_multisort — Ordena múltiples matrices, o matrices multi-dimensionales
array_pad — Rellena una matriz con un valor hasta el tamaño especificado
array_pop — Extrae el último elemento de la matriz
array_product — Calcula el producto de valores en una matriz
array_push — Inserta uno o más elementos al final de la matriz
array_rand — Selecciona una o más entradas aleatorias de una matriz
array_reduce — Reduce iterativamente una matriz a un solo valor usando una función llamada de retorno
array_reverse — Devuelve una matriz con los elementos en orden inverso
array_search — Busca un valor determinado en una matriz y devuelve la clave correspondiente en caso de éxito
array_shift — Extrae un elemento del comienzo de la matriz
array_slice — Extrae una porción de la matriz
array_splice — Suprime una porción de la matriz y la sustituye por otra cosa
array_sum — Calcula la suma de los valores en una matriz
array_udiff_assoc — Computa la diferencia entre matrices con un chequeo de índices adicional, comparando los datos con una llamada de retorno
array_udiff_uassoc — Computa la diferencia entre matrices con un chequeo de índices adicional, comparando los datos y los índices con una llamada de retorno
array_udiff — Computa la diferencia entre matrices, usando una llamada de retorno para la comparación de datos
array_uintersect_assoc — Calcula la intersección de matrices con chequeo adicional de ídices, comparando los datos por una función del usuario
array_uintersect_uassoc — Calcula la intersección de matrices con chequeo adicional de índices, compara los datos y los índices por una función del usuario
array_uintersect — Calcula la interseccón de matrices, compara los datos con una función del usuario
array_unique — Remueve valores duplicados de una matriz
array_unshift — Introduce uno o más elementos al principio de la matriz
array_values — Devuelve todos los valores de una matriz
array_walk_recursive — Aplicar una función de usuario recursivamente a cada miembro de una matriz
array_walk — Aplica una función del usuario a cada elemento de una matriz.
array — Crear una matriz
arsort — Ordena una matriz en orden inverso y mantiene la asociación de índices
asort — Ordena una matriz y mantiene la asociación de índices
compact — Crea una matriz que contiene variables y sus valores
count — Cuenta los elementos de una matriz o propiedades de un objeto
current — Devuelve el elemento actual de una matriz
each — Devuelve el siguiente par clave/valor de una matriz y avanza el apuntador
end — Mueve el puntero interno de una tabla al último elemento
extract — Importa variables a la tabla de símbolos desde una matriz
in_array — Revisa si un valor existe en una matriz
key — Obtiene una clave de una matriz asociativa
krsort — Ordena una matriz por clave en orden inverso
ksort — Ordena una matriz por clave
list — Asigna variables como si fueran una matriz
natcasesort — Ordena una matriz usando un algoritmo de “orden natural” sin distinguir mayúsculas de minúsculas
natsort — Ordena una matriz usando un algoritmo de “orden natural”
next — Avanza el puntero interno de una matriz
pos — Alias de current
prev — Rebobina el puntero interno de una matriz
range — Crea una matriz que contiene un rango de elementos
reset — Fija el puntero interno de una matriz a su primer elemento
rsort — Ordena una matriz en orden inverso
shuffle — Mezcla una matriz
sizeof — Alias of count
sort — Ordena una matriz
uasort — Ordena una matriz mediante una función de comparación definida por el usuario y mantiene la asociación de índices
uksort — Ordena una matriz por claves mediante una función definida por el usuario
usort — Ordena una matriz por sus valores usando una función de comparación definida por el usuario



No hay comentarios:

Publicar un comentario