Arrays

Los arrays en PHP son extremadamente flexibles, pueden contener, numero, auto-incrementables, claves alfanuméricas, e incluso ambos.

Creación de arrays

Tenemos dos maneras para crear arrays, la primera de ellas es llamando a array() , sería así:

$a = array (’a’ => 10, ’b’ => 20, ’cee’ => 30);
$a = array (5 => 1, 3 => 2, 1 => 3,);
$a = array (1, 2, 3, 4);
$a = array();

La segunda de ellas sería utilizando el operador []

Si al incluir un elemento en el array no le especificamos dónde, el array los irá añadiendo por orden, siendo el primer número o clave el 0.

$x[] = 10;
$x[’aaa’] = 101;
echo $x[0]; // Outputs 10

Existen dos funciones que muestran el valor de un array:

- La primera es var_dump() que muestra el valor del array y el tipo de cada una de las variables. También var_dump() es capaz de mostrar el valor de más de una variable al mismo tiempo.
- La segunda es print_r, que devuelve el array como un string.

Asociativos y Enumeraciones

Los arrays pueden ser divididos en dos tipos o categorías que son enumeraciones o asociativos.
Enumerativos son los arrays que son indexados con una clave numérica mientras que asociativos son los arrays que son indexados con claves asociativas.
Hay que tener en cuenta que un array de un tipo puede transformarse en otro tipo en cualquier momento.

Si cuando asignamos un valor a un array le asignamos una clave, PHP le asignará esa clave automáticamente sino le asignará una clave numérica que empezará por 0 y se irá incrementando.
Los arrays son case-sentitive pero no son tipe-sensitive, es decir, 1 es igual que ‘1’ dentro de un array, pero ‘B’ no es igual que ‘b’.

Arrays Multi dimensionales

Para crear un array multidimensional, crearemos un array dentro de ese array, así:
Creamos un array:
$array = array();

Creamos otra array dentro del $array en la posición 0

$array[] = array(
’tag’,
’mig’
);

Creamos otro array dentro del array en la posición 1

$array[] = array(
’tac’,
’mic’
);

echo $array[0][1] . $array[1][0];
//mostrará la salida ‘migmic’

Así lograremos que el array sea multidimensional y vaya creando una fila más cada vez que incluyamos un array más.

Características de los Array

Con el operador + podemos unir o juntar dos arrays.

Los podemos comparar con el operador == y si son iguales en las claves y en los valores resultará true, sino será False.
Con el comparador de identidad siempre sale false === a no ser que tengan los mismos valores en las mismas posiciones.
Con la función count podemos contar el número de elementos de un array.

Con la función isset() devuelve false si no tiene valor o el valor es nulo.

Si queremos saber si existe esa clave, utizaremos array_key_exists (’a’, $a); que devolverá true si existe aunque sea nulo.

La función flip() invierte clave y valor de un array.

La función reverse() ordena al revés los elementos del array, perdiendo la clave que tuviesen asociada y asignándole otra empezando desde el 0.

Recorrer un Array

Para recorrer un array en PHP lo más fácil es ir a la posición inicial e ir avanzando desde esa posición, para ello utilizamos la función reset() (como las claves pueden ser alphanuméricas es muy posible que la posición inicial no sea 0), después crearemos un bucle para ir avanzando por el array, hasta que nos encontremos el final de línea, que indica que el array ya no tiene más claves.

Como ejemplo tenemos este:

function displayArray(&$array) {
reset($array);
while (key($array) !== null) {
echo key($array) .”: ” .current($array) . PHP_EOL;
next($array);
}
}

Con la función key mostraremos la clave y con la función current mostraremos el valor del Array.
Otra manera más sencilla de recorrer un array es utilizando la función foreach() que provee PHP,
Sería así:
$array = array(’un’, ’dis’, ’tress’);
foreach ($array as $key => $value) {
echo “$key: $value”;
}

Mostrará todas las claves y todos los valores.

Ordenar Arrays

PHP posee muchas formas diferentes de ordenar arrays.

sort: ordena alphanumericamente utilizando los valores que contiene el array, y cambia las claves que están asociadas reasignándolas empezando por el número 0 (ascendente)
rsort: lo ordenará por orden descendente
asort: hace lo mismo que sort pero sin modificar las claves alphanuméricas.
arsort:ordenará igual que asort pero por orden descendente.
ksort : ordenará por las claves en orden ascendente.
krsort: ordenará por las claves en orden descendente.
suffle: desordenaría un array y se perderían las claves, las volvería a “resetar a 0,1… etc”

Pilas y colas con arrays

La función array_push y array_pop permiten introducir y sacar un elemento del array como si fuese una pila.
La función array_unshift y array_shift permiten introducir y sacar un elemento en un array como si fuese una cola.