Bienvenidos sean a este post, hoy hablaremos sobre una opcion interesante de las variables.
Cuando hablamos de array o arreglos o matrices, pueden escucharlos con cualquiera de esos nombres, nos referimos a unas variables que son muy interesantes porque nos permiten almacenar mas de una dato en las mismas, esto es muy practico para cuando necesitamos almacenar informacion relacionada entre si o una secuencia que debamos procesar, los arrays pueden ser de dos tipos:
- Indices
- Asociativas
Cuando decimos por indices nos referimos a que cada valor ingresado se le asignara automaticamente un indice de posicion el cual nos facilitara la recuperacion de la informacion, en cambio las asociativas son aquellas que tendran una clave asociada al valor y por medio de esta recuperaremos a dicho valor, veamos la sintaxis mas basica para crear un array:
<?php $miArray = array(); ?>
Otra forma de crearlo rapidamente es la siguiente:
<?php $miArray = []; ?>
Esto debemos hacerlo asi minimamente porque el lenguaje debe saber que es un array y no solamente una variable para poder procesarla correctamente, con esto comentado vamos a hablar sobre el primer tipo.
Arrays por indices
Este es uno de los arrays mas comunes que veremos a lo largo de nuestra vida, para entender el concepto vamos a crear un simple ejemplo, en este caso crearemos un archivo llamado arreglo.php y le agregaremos el siguiente codigo:
arreglo.php
<?php
$alumnos = array('Tinchicus','Gary','DarkZero Aleman','El tio Poli');
echo "El primer alumno es: " . $alumnos[0] . "\n";
echo "El segundo alumno es: " . $alumnos[1] . "\n";
echo "El tercer alumno es: " . $alumnos[2] . "\n";
echo "El cuarto alumno es: " . $alumnos[3] . "\n";
?>
Este es un ejemplo muy simple porque creamos a nuestro array a mano pero en general (alerta spoiler) sera la descarga desde un sitio, base de datos u otro origen, aqui tenemos un array llamado alumnos y a traves de array le pasamos cuatro datos entre comillas simplas o dobles, es indistinto, y separados por comas, tan simple como eso porque el indice es asignado automaticamente dentro del array, luego tendremos cuatro lineas de echo donde mostraremos un mensaje que indicara el orden de los alumnos pero observen como recuperamos el dato, es el nombre del array (alumnos) seguido de un numero entre corchetes, al igual que la mayoria de los lenguajes la primera posicion siempre sera 0, por ultimo usamos al modificador \n para hacer una nueva linea, si lo probamos veremos la siguiente salida:
tinchicus@dbn001vrt:~/lenguajes/PHP$ php arreglo.php
El primer alumno es: Tinchicus
El segundo alumno es: Gary
El tercer alumno es: DarkZero Aleman
El cuarto alumno es: El tio Poli
tinchicus@dbn001vrt:~/lenguajes/PHP$
Observen como de una manera simple hemos podido almacenar datos y recuperarlos, lo bueno de los arrays en PHP es que al igual que los lenguajes con orientacion web son de tipo dinamico y su tamaño se ajustara en base a la datos que ingresemos a diferencia de otros lenguajes donde debemos definir su tamaño, probemos de actualizar una posicion del array, para ello haremos estas pequeñas modificaciones:
arreglo.php
<?php
$alumnos = array('Tinchicus','Gary','DarkZero Aleman','El tio Poli');
echo "El primer alumno es: " . $alumnos[0] . "\n";
echo "El segundo alumno es: " . $alumnos[1] . "\n";
echo "El tercer alumno es: " . $alumnos[2] . "\n";
echo "El cuarto alumno es: " . $alumnos[3] . "\n";
$temp = $alumnos[2];
$alumnos[2] = $alumnos[1];
$alumnos[1] = $temp;
echo "\nEl primer alumno es: " . $alumnos[0] . "\n";
echo "El segundo alumno es: " . $alumnos[1] . "\n";
echo "El tercer alumno es: " . $alumnos[2] . "\n";
echo "El cuarto alumno es: " . $alumnos[3] . "\n";
?>
Para esta ocasion al codigo anterior le agregamos dos bloques, en el primer bloque crearemos una nueva variable para almacenar el valor de la tercer posicion (2), luego reemplazaremos el valor de la tercer posicion con el de la segunda posicion (1) para finalmente reemplazar el valor de la segunda posicion con el almacenado con la nueva variable, temp, el siguiente bloque vuelve a mostrar el valor de cada una de las posiciones dentro del array tal como hicimos antes, ejecutemos para ver su salida:
tinchicus@dbn001vrt:~/lenguajes/PHP$ php arreglo.php
El primer alumno es: Tinchicus
El segundo alumno es: Gary
El tercer alumno es: DarkZero Aleman
El cuarto alumno es: El tio Poli
El primer alumno es: Tinchicus
El segundo alumno es: DarkZero Aleman
El tercer alumno es: Gary
El cuarto alumno es: El tio Poli
tinchicus@dbn001vrt:~/lenguajes/PHP$
Como pueden ver ahora invertimos los valores creados anteriormente, por lo tanto podemos decir que para recuperar un valor siempre es:
$nombreArray[posicion];
Y para reemplazar un valor de una posicion X debemos usar:
$nombreArray[posicion] = nuevoValor;
Por ultimo si queremos agregar un nuevo valor dentro de nuestro array es tan simple como :
$nombreArray[] = nuevoValor;
Si lo hicieramos con el codigo anterior un ejemplo seria el siguiente:
$alumnos[] = "El Kavito";
Para finalizar con este tipo de array lo unico que deben tener en cuenta es que siempre trabaja con el mismo tipo de dato, es decir si utilizan cadenas (strings) todos los datos deben ser de este tipo, si utilizan numeros todos deben ser numeros, y asi sucesivamente, con esto finalizado pasemos al siguiente tipo.
Arrays asociativos
Este a diferencia del anterior no asigna una posicion sino que espera que le informemos la clave para poder asignar el valor a la misma, para entender el concepto vamos a ver un ejemplo y en este caso tomaremos el archivo anterior y modificaremos el codigo de la siguiente forma:
arreglo.php
<?php
$alumno1=array(
'nombre'=>'Martin Miranda',
'apodo'=>'Tinchicus',
'edad'=>44);
$alumno2=array(
'nombre'=>'Enzo Tortore',
'apodo'=>'Gary',
'edad'=>33);
$alumno3=array(
'nombre'=>'Ariel Polizzi',
'apodo'=>'Tio poli',
'edad'=>47);
echo "El primer alumno es " . $alumno1['nombre'] . " le dicen "
. $alumno1['apodo'] . " y tiene " . $alumno1['edad'] . " años\n";
echo "El segundo alumno es " . $alumno2['nombre'] . " le dicen "
. $alumno2['apodo'] . " y tiene " . $alumno2['edad'] . " años\n";
echo "El tercer alumno es " . $alumno3['nombre'] . " le dicen "
. $alumno3['apodo'] . " y tiene " . $alumno3['edad'] . " años\n";
?>
Parece complicado pero no lo es tanto, primero crearemos tres arrays llamados alumno1, alumno2 y alumno3 los cuales son identico por lo tanto tomaremos uno solo y lo desarrolaremos:
$alumno1=array(
'nombre'=>'Martin Miranda',
'apodo'=>'Tinchicus',
'edad'=>44);
Al igual que explicamos antes usamos a array y luego pasamos un nombre que representa a la posicion o tambien denominado clave, seguido de un operador que simboliza que a dicha clave se le asigne el valor siguiente, en el primer caso tenemos la clave nombre y le pasaremos el nombre y apellido, una vez hecho usamos una coma para delimitar que esa es la clave y el valor asociado, luego hacemos lo mismo pero en este caso le pasamos el nombre de clave como apodo y un nuevo valor, por ultimo enviamos la clave edad pero con un valor numerico, esto mismo lo hacemos en los otros dos arrays pero con informacion distinta, luego mostraremos la informacion de cada array y para ello usaremos tres echo para cada uno pero como en el caso anterior vamos a tomar uno de ejemplo para explicarlo:
Nota: Lo hecho aqui contradice lo visto en el tipo anterior, dado que puede funcionar pero se toma como buena practica tener el mismo tipo de datos en los arrays.
echo "El primer alumno es " . $alumno1['nombre'] . " le dicen "
. $alumno1['apodo'] . " y tiene " . $alumno1['edad'] . " años\n";
Primero pasaremos un texto para indicar cual es el alumno en cuestion, seguido le pasaremos el nombre y para ello usamos el array correspondiente y en lugar de indicar la posicion como vimos anteriormente utilizamos la clave relacionada al nombre, luego le concatenamos un texto seguido del otro campo llamado apodo y por ultimo un texto con la edad gracias a la clave con el mismo nombre, esto mismo lo hacemos en las otras dos lineas para mostrar al resto de los alumnos pero cada una con su propio array, probemos el codigo para ver su salida:
tinchicus@dbn001vrt:~/lenguajes/PHP$ php arreglo.php
El primer alumno es Martin Miranda le dicen Tinchicus y tiene 44 años
El segundo alumno es Enzo Tortore le dicen Gary y tiene 33 años
El tercer alumno es Ariel Polizzi le dicen Tio poli y tiene 47 años
tinchicus@dbn001vrt:~/lenguajes/PHP$
Observen como nos devolvio correctamente la informacion de cada array en base a la clave que esta relacionado al tipo de dato que almacena, se preguntaran si se puede usar campos numericos como las posiciones? Si se puede no habria ningun inconveniente pero cual seria el sentido si existe los tipos anteriores que lo hacen automatico, esto es ideal para cuando necesitamos trabajar con objetos especificos y con esto tenemos una mejor referencia del dato que contiene y no importa el orden siempre nos devolvera el valor almacenado gracias a la clave.
En resumen, hoy hemos visto que es un array, para que nos puede servir, como nos beneficia, como podemos generarlo, como podemos manipularlo, los distintos tipos que existen y vimos unos ejemplos de como utilizar a cada uno de ellos, por ultimo vimos cuales son las ventajas de un tipo u otro, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
