¡Advertencia!
Este tema no ha tenido respuestas en más de un mes. Recuerda que si deseas añadir una nueva debes cumplir con las normas de la web.
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):

<?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:

<?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:

<?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:


<?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]).


<?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:

<?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:

<?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.


<?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:

<?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.

<?php
$array = array('xt3mP', 'admin', 'agosto', 'programador', 'xt3mp@und3rgr0und.org');
$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] => xt3mp@und3rgr0und.org ) <= $sacar
Array ( [0] => admin [1] => agosto [2] => programador )  <= $sacar2
*/
?>


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

<?php
$array = array('xt3mP', 'admin', 'agosto', 'programador', 'xt3mp@und3rgr0und.org');
unset($array[4]); //Quitamos xt3mp@und3rgr0und.org
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:

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


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


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


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


<?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.

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻
me gusta :DDD tambien creo que hay otra forma para darle valor a los arrays (0,1,2,3) creo no me acuerdo.

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻

me gusta :DDD tambien creo que hay otra forma para darle valor a los arrays (0,1,2,3) creo no me acuerdo.


Si lees bien, en la parte "array númerico/escalar", explico eso $array[0], $array[1], $array[2], etc, si tu no pones un indice, por ejemplo 2 => "valor", automáticamente se empezaría por el 0, pero si escribes 8 => "valor", se empezaría por el 8, aunque si nombras (le situas un indice a cada valor), 1 => "valor", 5 => "valor", 8 => "valor", ya tendrias que nombrarlo con [1], [5] y [8].

Saludos.

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻
Si no me equivoco... la forma de mostrar los arrays es la misma que los explodes no?

Lo digo por:

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

Arquitecto, diseñador y programador | Comenzando a proyectar mi vida bajo mis propios ideales. Administrador de ilDom, Twiteck y Century21

Si no me equivoco... la forma de mostrar los arrays es la misma que los explodes no?

Lo digo por:

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


Un explode lo que hace es 'dividirte' una cadena de caracteres en un arreglo a partir de alguna secuencia de caracteres. Eso retorna, un arreglo.

Por ejemplo:

<?php
$hola = "Hey. Tu. Que. Haces";
$ejem = explode(".", $hola);

/*
Entonces $ejem tiene:
$ejem[0] >> Hey
$ejem[1] >> Tu
$ejem[2] >> Que
$ejem[3] >> Haces
*/
?>


Una aclaración breve, array en español sería arreglo. Y los arreglos pueden ser tanto vectores (unidimensional) como matrices (bidimensionales).
Exáctamente como dice Physlet, un explode lo que hace es "dividir" una cadena y tantos "true" literalmente ó mejor dicho tantos divisores que le indiquemos al explode encuentre será el número de "valores" que tendrá el array (ya que es uno solo por el explode).

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻