Arrays en PHP

Iniciado por Xt3mP, Agosto 12, 2010, 10:41:20 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Arrays ó Matrices.

Un array prácticamente es una variable guarda un conjunto de valores que comúnmente son almacenados por un "índice ó clave", a diferencia de las variables comúnes que solo pueden almacenar un solo valor tanto string, númerico (entre otros), el array (como mencioné anteriormente), permite almacenar no solo un valor, si no demasiados (conforme sea la necesidad de cada programador).

Existen 3 tipos de array (comúnmente), los cuales son:
--------------------------------------------------------------------------------------
Array númerico/escalar.
Se identifíca príncipalmente porque tiene un índice númerico (Normalmente el índice númerico empieza por 0):
Código: php

<?php
$array = array('Xt3mP', 'Admin', 'agosto');
echo $array[0]; //Xt3mP
echo $array[1]; //Admin
echo $array[2]; //agosto
?>


Inclusive, el índice númerico que por default empieza por 0, se puede cambiar por otro valor indicando en el primer valor del array que número queremos usar:
Código: php

<?php
$array = array(6 => 'Xt3mP', 'Admin', 'agosto'); //En donde 6 es el indice primario.
echo $array[6]; //Xt3mP
echo $array[7]; //Admin
echo $array[8]; //agosto
?>

--------------------------------------------------------------------------------------
Array asociativo/de strings.
Se identifíca príncipalmente porque tiene un índice nombrado por strings:
Código: php

<?php

echo $array['nombre']; //Xt3mP
echo $array['rango']; //Admin
echo $array['fecha']; //agosto
?>

--------------------------------------------------------------------------------------
Array multidimensional.
Se identifíca príncipalmente porque tienen varios índices en un mismo array, es decir, varios array en uno solo:

Código: php

<?php
$tutoriales = array
(
'php' =>array(
'autor' => 'Xt3mP',
'titulo' => 'Arrays'
),
'sql' =>array(
'autor' => 'Xt3mP',
'titulo' => 'Base de datos',
)
);
echo $tutoriales['php']['autor']; //Xt3mP
echo $tutoriales['php']['titulo']; //Arrays
?>

--------------------------------------------------------------------------------------
Ordenando arrays
--------------------------------------------------------------------------------------
Existen varias funciones para ordenar arrays, tanto de menor a mayor (alfabéticamente como númericamente), para ello existen sort(), rsort(), ksort() y asort().
Para no hacer el tutorial tan aburrido, lo explicaré con sort y en comentarios pondré como quedaría con cada una de las funciones, creo que no tendran problema con eso.

Nota: Utilizaré un bucle (foreach) que explicaré muy brevemente ya que el tutorial se enfoca en arrays, no en bucles.
Foreach: Es un bucle que nos permite recorrer cada uno de los valores de un array, digamos desde $array[0] á $array[Y] (en donde "Y" es el último vlaor del array [$array[0] á $array[3]).

Código: php

<?php
$array = array('xt3mP', 'admin', 'agosto');
sort($array);
foreach ($array as $indice => $valor) {
    echo "array[".$indice."] = ".$valor."<br>";
}
/*
Con sort ordena de menor a mayor dependiendo del valor alfabeticamente.
array[0] = admin
array[1] = agosto
array[2] = xt3mP

Con rsort ordena de maroy a menor dependiendo del valor alfabeticamente.
array[0] = xt3mP
array[1] = agosto
array[2] = admin

Con ksort ordena de menor a mayor dependiendo del indice numerico.
array[0] = xt3mP
array[1] = admin
array[2] = agosto

Con asort ordena de menor a mayor dependiendo de la relacion entre el indice y el valor, la expresion del array seria:
$array = array('a' => 'xt3mP', 'b' => 'admin', 'c' => 'agosto');
En donde estamos dandole una escala alfabeticamente (a , b , c) a los arrays pero lo que hace esta funcion es asi el indice alfabeticamente sea por orden (a,b,c)
lo que ordenara seran los valores, en este caso resultaria:
array[b] = admin
array[c] = agosto
array[a] = xt3mP
Pueden observar que la escala quedo b,c,a.
*/
?>

--------------------------------------------------------------------------------------
Contar valores de un array
--------------------------------------------------------------------------------------
Para contar los valores de un array, existe una funcion llamada count();, que como su nombre derivado del ingles significa, cuenta los valores del array:
Código: php

<?php
<?php
$array = array('xt3mP', 'admin', 'agosto');
echo count ($array);
?>
/*
Sacaria "3", ya que solo existen 3 valores.
*/

--------------------------------------------------------------------------------------
Mover el array de lugar (puntero)
--------------------------------------------------------------------------------------
Como deben de saber, en PHP se puede mover el "puntero" en donde se encuentra el array, tanto como para el inicio [reset()], final [end()], siguiente [next()] ó anterior [prev()], explicaré solo uno ya que no creo que al implementar los otros 3 les cueste trabajo:
Código: php

<?php
$array = array('Xt3mP', 'admin', 'agosto');
echo current($array); // Xt3mP
next($array);// Nos saltamos Xt3mP
next($array);// y admin
echo current($array); //agosto
reset($array); //Empezamos desde el primero de nuevo
echo current($array); //Xt3mP
/*
Daria:
Xt3mP
agosto
Xt3mP
*/
?>


Como pudieron observar, mostramos primero en donde estaba el puntero, despues nos saltamos dos valores y mostramos nuevamente, al final nos movimos al inicio y volvimos a mostrar valor. En esta parte tambien cabe mencionar otra funcion nombrada var_dump() que tiene como funcion (valgame la redundancia), mostrar los valores de un array, utilizando de ejemplo los mismos valores que hemos seguido a lo largo de este tutorial el codigo seria:var_dump() = Muestra valores de array.

Código: php

<?php
$array = array('xt3mP', 'admin', 'agosto');
echo var_dump($array);
/*
array(3)
{
[0]=>  string(5) "xt3mP"
[1]=>  string(5) "admin"
[2]=>  string(6) "agosto"
}
En donde 3 es el numero de valores.
[X]0 es el indice.
string(X) es el numero de letras que tiene cada string
*/
?>

--------------------------------------------------------------------------------------
Saber si es un array
--------------------------------------------------------------------------------------
Hemos hablado de como movernos por arrays, como identificarlos pero no como saber si realmente es un array, fácil, existe una funcion que su nombre lo dice todo (is_array) que nos permite saber si es un array, ejemplo:
Código: php

<?php
$array = array('xt3mP', 'admin', 'agosto');
$arraymal = "test";
if (is_array($array)){ echo "Array es un array";} //Es un array
if (is_array($arraymal)){ }else{ echo "Array mal no es un array."; } //No es un array
?>
/*
Mostraria:
Array es un array
Array mal no es un array.
*/

--------------------------------------------------------------------------------------
Modificar array
--------------------------------------------------------------------------------------
Así como hay funciones para movernos en un array, tambien hay funciones para editar un array, para reducir un array [array_slice()], para eliminar un array [unset()], para aumentar un array [array_push()], para unir arrays [array_merge()].

array_slice() ocupa por defecto dos parámetros, aunque se pueden utilizar tres si lo que necesitas es mostrar digamos de "X" a "Y", pero si utilizas dos automáticamente se mostraria desde "X" hasta el final.
Código: php

<?php
$array = array('xt3mP', 'admin', 'agosto', 'programador', '[email protected]');
$sacar = array_slice($array, 2);      // desde agosto(2) hacia adelante
$sacar2 = array_slice($array, 1, 3);  // desde admin(1) hacia programador(3)
print_r($sacar);
echo "<br />";
print_r($sacar2);
/*
Daria:
Array ( [0] => agosto [1] => programador [2] => [email protected] ) <= $sacar
Array ( [0] => admin [1] => agosto [2] => programador )  <= $sacar2
*/
?>


unser() sirve para eliminar un indice tanto asociativo como numerico de la siguiente manera:
Código: php

<?php
$array = array('xt3mP', 'admin', 'agosto', 'programador', '[email protected]');
unset($array[4]); //Quitamos [email protected]
print_r($array);
/*
Daria:
Array ( [0] => xt3mP [1] => admin [2] => agosto [3] => programador )
*/
?>


array_push() sirve para agregar un nuevo valor al array de la siguiente manera:
Código: php

<?php
$array = array('xt3mP', 'admin', 'agosto', 'programador', '[email protected]');
array_push($array, "mexico");
print_r($array);
/*
Daria:
Array ( [0] => xt3mP [1] => admin [2] => agosto [3] => programador [4] => [email protected] [5] => mexico [6] => hombre )
*/
?>


array_merge() sirve para unir arrays, por ejemplo, supongamos que tenemos dos arrays y queremos mostrarlos a la vez:

Código: php

<?php
$array = array('xt3mP', 'admin', 'agosto');
$array2 = array('[email protected]', 'mexico', 'hombre');
$array_final = array_merge($array,$array2);
print_r($array_final);
/*
Daria:
Array ( [0] => xt3mP [1] => admin [2] => agosto [3] => [email protected] [4] => mexico [5] => hombre )
*/
?>


array_shift() sirve para quitar el primer elemento de un array y arrat_pop() quita el ultimo elemento:

Código: php

<?php
$array = array('xt3mP', 'admin', 'agosto');
$array2 = array('xt3mP', 'admin', 'agosto');
array_shift($array);
array_pop($array2);
print_r($array);
print_r($array2);
/*
Daria:
Array ( [0] => admin [1] => agosto )
Array ( [0] => xt3mP [1] => admin )
*/
?>


Y bueno, este tutorial ha sido completado, esta un poco extenso pero espero que le hayan entendido, cualquier duda y/ó sugerencia haganmela saber, saludos.

P.D: Si se me paso algo ó escribi algo mal perdonen, pero es un texto demasiado extenso que duré cerca de 2 hora escribiendolo para ustedes.
Cada vez que me das Karma me motivas

Muy buen tutorial!, Todo array explicado perfectamente.
Muchas gracias
Saludos!

bonito puton !! jejeje ! te pasast

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy buen tutorial!, Todo array explicado perfectamente.
Muchas gracias
Saludos!

Ese era el punto, saludos y gracias por comentar.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
bonito puton !! jejeje ! te pasast

Lo hice pensando en ti, hahaha, saludos.
Cada vez que me das Karma me motivas