Anuncios

Bienvenidos sean a este post, hoy hablaremos sobre una particularidad de los arrays.

Anuncios
Anuncios

Hasta ahora hemos hablado de arrays con una sola posicion o como se los denomina unidimensionales o de una sola dimension pero estos pueden tener todas las que necesitemos o infinitas, esto en la teoria pero en la practica nunca veran mas alla de la tridimensional, y esto como una eventualidad muy eventual, y en la vida real solo me he cruzado con unidimensionales y bidimensionales, las dimensiones de un array quedan definidas por la cantidad de corchetes que necesita para recuperar un dato, les doy un ejemplo:

nombreArray[pos1][pos2];
Anuncios
Anuncios

En este caso tenemos un array bidimensional porque le pasamos dos posiciones, mas posiciones pasan mas dimensiones tiene ese array pero volvamos al ejemplo y analicemos este array al ser de dos dimnensiones lo podemos plasmar como un tablero de ajedrez donde una dimension representa a las filas y la otra a las columnas, y para descubrir el dato de cada cuadrado debemos utilizar la coordenada de la fila y la columna, si tuvieramos un array de tres dimensiones vamos a necesitar los tres datos para recuperar dicha informacion y asi con todas las dimensiones que posea nuestro array, por eso en la practica mas alla de las tres no veran pero esto no significa que no se usen en programacion muy avanzada.

Anuncios

Por esta razon y para comprender un poco mejor el concepto vamos a crear un nuevo ejemplo y ver como trabaja, para ello haremos un nuevo archivo que llamaremos multi.php y le agregaremos el siguiente codigo:

multi.php

<?php

$alumnos = array(
	'tinchicus' => array(
		'edad'=>44,
		'nombre'=>'Martin',
		'apellido'=>'Miranda'),
	'etortore' => array(
		'edad'=>33,
		'nombre'=>'Enzo',
		'apellido'=>'Tortore'),
	'daleman' => array(
		'edad'=>32,
		'nombre'=>'DarkZero',
		'apellido'=>'Aleman'),
	'polizzia' => array(
		'edad'=>47,
		'nombre'=>'Ariel',
		'apellido'=>'Polizzi'));

echo $alumnos['tinchicus']['edad'] . "\n";
echo $alumnos['etortore']['nombre'] . "\n";
echo $alumnos['daleman']['apellido'] . "\n";
echo $alumnos['polizzia']['nombre'] . "\n";

?>
Anuncios

En este codigo primero crearemos un array de tipo asociativo donde definiremos una clave que sera el usuario de ingreso, a esta clave le asociamos otro array, esta sera nuestra segunda dimension, el cual almacenara varios datos del usuario como son la edad, el nombre y el apellido, esto lo haremos con cuatro personas que representaran a nuestros alumnos, luego mostraremos algunos datos de los alumnos, veamos una linea de ejemplo:

echo $alumnos['tinchicus']['edad'] . "\n";
Anuncios

Observen como el primer dato va a ser la primera «dimension», en este caso el usuario, seguido del elemento que queremos recuperar siendo esta la segunda dimension, observen como en las otras lineas hacemos exactamente lo mismo pero variamos el elemento que queremos recuperar de cada usuario, probemos el codigo para ver su salida:

tinchicus@dbn001vrt:~/lenguajes/PHP$ php multi.php 
44
Enzo
Aleman
Ariel
tinchicus@dbn001vrt:~/lenguajes/PHP$
Anuncios

Vean como nos devolvio cada informacion solicitada, si necesitamos hacer una conversion de la forma que se almacenaron los datos seria algo asi:

Usuario/Datosedadnombreapellido
tinchicus44MartinMiranda
etortore33EnzoTortore
daleman32DarkZeroAleman
polizzia47ArielPolizzi
Anuncios

Esta tabla representa las dimensiones de nuestro array, donde la primer columna representara la primera dimension y las columnas restantes representan el resto de las posiciones de nuestro segundo array que esta relacionado al primer array, si observan esta tabla y comparan como devuelve la informacion veran la logica en el trabajo, nuestro siguiente paso sera ver como actualizar un valor en un array de este tipo, no es muy distinto a lo visto anteriormente, simplemente iremos al codigo anterior y agregaremos la siguiente linea despues de creado el array pero antes de mostrar los elementos que queremos ver:

$alumnos['tinchicus']['edad'] = 45;
Anuncios

Como pueden ver simplemente debemos informar las coordenadas correctas para actualizar, para esta ocasion actualizamos la edad para el alumno tinchicus, si lo volvemos a probar veremos la siguiente salida:

tinchicus@dbn001vrt:~/lenguajes/PHP$ php multi.php 
45
Enzo
Aleman
Ariel
tinchicus@dbn001vrt:~/lenguajes/PHP$
Anuncios

La edad el alumno se actualizo y se puede ver reflejado en la salida de nuestro programa pero esto tambien se puede realizar para los arrays por indices, para ello tomaremos el codigo anterior y lo modificaremos de la siguiente manera:

multi.php

<?php

$alumnos = array(
	array('tinchicus',44,'Martin','Miranda'),
	array('etortore',33,'Enzo','Tortore'),
	array('daleman',32,'DarkZero','Aleman'),
	array('polizzia',47,'Ariel','Polizzi'));

echo $alumnos [0][1] . "\n";
echo $alumnos [1][0] . "\n";
echo $alumnos [2][3] . "\n";
echo $alumnos [3][2] . "\n";

?>
Anuncios

En este caso por cada posicion crearemos un nuevo array donde le pasaremos los distintos datos de cada alumno, comenzando con el usuario, que dejara de ser nuestra primera dimension, seguido de la edad, el nombre y el apellido, con esto podemos decir que cada nueva llamada a array creara una nueva dimension para nuestro array original, por ultimo mostraremos algunos datos del array, para verlo bien claro tomemos una linea de ejemplo:

echo $alumnos [0][1] . "\n";
Anuncios

Donde la primera dimension sera la posicion donde se encuentra la nueva llamada a array seguido de la posicion que deseamos recuperar de dicho array, ejecutemos este codigo y veamos como nuestra salida:

tinchicus@dbn001vrt:~/lenguajes/PHP$ php multi.php 
44
etortore
Aleman
Ariel
tinchicus@dbn001vrt:~/lenguajes/PHP$
Anuncios
Anuncios

Observen como nos devolvio cada dato solicitado e inclusive ahora podemos recuperar el usuario asignado al alumno pero lo perdimos como clave y esto nos dificultara a la hora de buscar los datos relacionados a este dado que ahora estan representados por posiciones y no por claves pero en determinadas circunstancias sera mas practico trabajarlo de esta forma aunque la bidimensionalidad o superior sera preferible manejarlo con claves, como pueden ver en determinados momentos nos cruzaremos con este tipo de manejo de datos pero en la vida real esto sera lo mas complejo que veran con arrays pero traten de entender esta mecanica por si se cruzan con arrays de mas dimensiones.

Anuncios

En resumen, hoy hemos visto arrays multidimensionales, como se componen, como se diferencian con los vistos anteriormente, como se crean, como se puede recuperar informacion, un ejemplo practico para el caso de los arrays asociativos y otro para los arrays de indices, 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.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50