Sin más, vamos a introducirnos en materia con varios ejemplos interesantes de manejo de vectores.
array_slice()
Para disminuir el número de casillas de un arreglo tenemos varias funciones. Entre ellas, array_slice() la utilizamos cuando queremos recortar algunas casillas del arreglo, sabiendo los índices de las casillas que deseamos conservar.
Recibe tres parámetros. El array, el índice del primer elemento y el número de elementos a tomar, siendo este último parámetro opcional.
En el ejemplo siguiente tenemos un array con cuatro nombres propios. En la primera ejecución de array_slice() estamos indicando que deseamos tomar todos los elementos desde el índice 0 (el principio) hasta un número total de 3 elementos.
El segundo array_slice() indica que se tomen todos los elementos a partir del índice 1 (segunda casilla).
<?
echo "<p>";
//modifico otra vez
$entrada = array ("Miguel", "Pepe", "Juan", "Julio", "Pablo");
//modifico el tamaño
$salida = array_slice ($entrada, 0, 3);
//muestro el array
foreach ($salida as $actual)
echo $actual . "<br>";
$salida = array_slice ($salida, 1);
//muestro el array
foreach ($salida as $actual)
echo $actual . "<br>";
?>
Tendrá como salida:
Miguel
Pepe
Juan
Pepe
Juan
array_shift()
Esta función extrae el el primer elemento del array y lo devuelve. Además, acorta la longitud del array eliminando el elemento que estaba en la primera casilla. Siempre hace lo mismo, por tanto, no recibirá más que el array al que se desea eliminar la primera posición.
En el código siguiente se tiene el mismo vector con nombres propios y se ejecuta dos veces la función array_shift() eliminando un elemento en cada ocasión. Se imprimen los valores que devuelve la función y los elementos del array resultante de eliminar la primera casilla.
<?
//quito la primera casilla
echo "<p>";
//quito la primera casilla, que ahora sería la segunda del array original
$entrada = array ("Miguel", "Pepe", "Juan", "Julio", "Pablo");
$salida = array_shift ($entrada);
//muestro el array
echo "La función devuelve: " . $salida . "<br>";
foreach ($entrada as $actual)
echo $actual . "<br>";
$salida = array_shift ($entrada);
echo "La función devuelve: " . $salida . "<br>";
//muestro el array
foreach ($entrada as $actual)
echo $actual . "<br>";
?>
Da como resultado:
La función devuelve: Miguel
Pepe
Juan
Julio
Pablo
La función devuelve: Pepe
Juan
Julio
Pablo
unset()
Se utiliza para destruir una variable dada. En el caso de los arreglos, se puede utilizar para eliminar una casilla de un array asociativo (los que no tienen índices numéricos sino que su índice es una cadena de caracteres).
Veamos el siguiente código para conocer cómo definir un array asociativo y eliminar luego una de sus casillas.
<?
//mostramos los estadios
echo "<p>";
//eliminamos el estadio asociado al real madrid
//mostramos los estadios otra vez
$estadios_futbol = array("Barcelona"=> "Nou Camp","Real Madrid" => "Santiago Bernabeu","Valencia" => "Mestalla","Real Sociedad" => "Anoeta");
foreach ($estadios_futbol as $indice=>$actual)
echo $indice . " -- " . $actual . "<br>";
unset ($estadios_futbol["Real Madrid"]);
foreach ($estadios_futbol as $indice=>$actual)
echo $indice . " -- " . $actual . "<br>";
?>
La salida será la siguiente:
Barcelona -- Nou Camp
Real Madrid -- Santiago Bernabeu
Valencia -- Mestalla
Real Sociedad -- Anoeta
Barcelona -- Nou Camp
Valencia -- Mestalla
Real Sociedad -- Anoeta
array_push()
Inserta al final del array una serie de casillas que se le indiquen por parámetro. Por tanto, el número de casillas del array aumentará en tantos elementos como se hayan indicado en el parámetro de la función. Devuelve el número de casillas del array resultante.
Veamos este código donde se crea un arreglo y se añaden luego tres nuevos valores.
<?
//aumentamos el tamaño del array
foreach ($tabla as $actual)
$tabla = array ("Lagartija", "Araña", "Perro", "Gato", "Ratón");
array_push($tabla, "Gorrión", "Paloma", "Oso");
echo $actual . "<br>";
?>
Da como resultado esta salida:
Lagartija
Araña
Perro
Gato
Ratón
Gorrión
Paloma
Oso
array_merge()
Ahora vamos a ver cómo unir dos arrays utilizando la función array_merge(). A ésta se le pasan dos o más arrays por parámetro y devuelve un arreglo con todos los campos de los vectores pasados.
En este código de ejemplo creamos tres arrays y luego los unimos con la función array_merge()
<?
//aumentamos el tamaño del array
foreach ($resultado as $actual)
$tabla = array ("Lagartija", "Araña", "Perro", "Gato", "Ratón");
$tabla2 = array ("12","34","45","52","12");
$tabla3 = array ("Sauce","Pino","Naranjo","Chopo","Perro","34");
$resultado = array_merge($tabla, $tabla2, $tabla3);
echo $actual . "<br>";
?>
Da como resultado:
Lagartija
Araña
Perro
Gato
Ratón
12
34
45
52
12
Sauce
Pino
Naranjo
Chopo
Perro
34
Una última cosa. También pueden introducirse nuevas casillas en un arreglo por los métodos habituales de asignar las nuevas posiciones en el array a las casillas que necesitemos.
En arrays normales se haría así:
$tabla = array ("Sauce","Pino","Naranjo");
$tabla[3]="Algarrobo";
En arrays asociativos:
$estadios_futbol = array("Valencia" => "Mestalla","Real Sociedad" => "Anoeta");
$estadios_futbol["Barcelona"]= "Nou Camp";
Veremos más adelante otras posibilidades del trabajo con arrays.
Ponemos a vuestra disposición las páginas PHP que contienen los códigos con los que hemos trabajado.
| Por: Jorge | 29/5/2004
|
| Por: Dani | 19/6/2004
|
| Por: Perceval | 29/10/2008
|
| Por: Jp | 06/12/2008
|
| Por: eli | 07/12/2008
|
| Por: Carlitos | 04/3/2009
|
| Felisitaciones | 09/10/2009 |
![]() jaleman | solucion al problema de arreglos | 13/12/2009 |