Cargando



PHP Trabajando con matrices o arrays

Vamos a explicar en profundidad el concepto de array o matriz en términos de programación.


mar 20 2014 21:38
Avanzado
mar 21 2014 10:35

PHP-array.jpg


Vamos a explicar en profundidad el concepto de array o matriz en términos de programación.

Un array en PHP es 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.

Un array permite guardar distintos valores en una variable y distinguirlos por un índice, por ejemplo:


$variable[indice]

El primer elemento se sitúa en el índice 0.
Para asignar valores al array, lo hacemos así:


$variable[indice]=valor

Por ejemplo, un array con los días de la semana:

<?php
$dia[0]="Lunes";
$dia[1]="Martes";
$dia[2]="Miercoles";
$dia[3]="Jueves";
$dia[4]="Viernes";
$dia[5]="Sabado";
$dia[6]="Domingo";
// Si queremos mostrar el Jueves lo haremos invocando el indice
echo $dia[3];
?>

También podemos generar array en una misma linea y los indices se crearan solos:

<?php
$dia=array("Lunes","Martes",”Miercoles”,”Jueves”,”Viernes”,”Sabado”, "Domingo");
// mostrar el Sábado
echo $dia[5];
?>

Si quiero saber cuanto elementos tiene un array debo hacerlo de la siguiente manera
echo count($dia);


Para recorrer un array puedo hacerlo con un for de la siguiente manera

for ($i=0;count($dias);$i++) {
echo $dias[$i];
}

Si no conocemos el contenido, ni la estructura de datos del array podemos listarlo rapidamente con las funciones print_r o var_dumo();

print_r($dia);

Devolviéndonos la siguiente salida de datos:

Array
(
   [0] => Lunes
   [1] => Martes
   [2] => Miercoles
   [3] => Jueves
   [4] => Viernes
   [5] => Sabado
   [6] => Domingo
)

Si queremos eliminar los datos del array utilizaremos unset
unset($dias);


Si queremos eliminar algundatos en particular indicaremos el indice
unset($dias[2]); en este caso habriamos eliminado el dia Miercoles

Para ordenar un array podemos utilizar la sentencia array_multisort, como por ejemplo ordenar en forma ascendente y alfabeticamente.


array_multisort($dias, SORT_ASC, SORT_STRING,);

Si tuvieramos por ejemplo un array multidimensional que es un array con varios arrays, muy utilizado en carritos de compra, como por ejemplo un carrito supongamos el primer array tine los id de producto, producto, la cantidad y el tercero el precio unitario,

$carrito = array(
array(124, 220, 234, 150, 101),
array( ‘Lapiz’, ‘Cuaderno’, ‘Libro’ ‘Regla’, ‘Tinta’)
array( 1, 2, 2, 1, 1),
array( 1 , 5, 10, 3, 1)
);

Ahora lo ordenamos primero por producto alfaberticamente y luego por precio de mayor a menor:

array_multisort($carrito[1], SORT_ASC, SORT_STRING,
$carrito[4], SORT_NUMERIC, SORT_DESC);

Cuando hacemos una consulta en una base de datos, por ejemplo, mediante un ciclo con mysql_fetch_assoc(), el resultado es un conjunto de array.

<?php
$query = 'SELECT * FROM libros';
$resultado = mysql_query($sql);
while ($row = mysql_fetch_assoc($resultado)) {
echo $row["editorial"];
echo $row["titulo"];
}
?>

Mientras exista una fila de datos, el resultado se vuelca en un array asociativo generando las columnas y claves, luego lo podemos consultar con una estructura repetitiva, si solo se espera una fila, no hay necesidad de usar un bucle.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X