Add Me!Close Menu Navigation
Add Me!Categorías abiertas del menú

Arrays multidimensionales en PHP: Funciones básicas

Los Arrays unidimensionales no tienen demasiada historia, por lo cual no me voy a extender en ese tema. En este artículo lo que quiero mostrar son las funciones que pueden realizarse con arrays multidimensionales.
La diferencia entre un array unidimensional y uno multidimensional es que el segundo es un array con una serie de elementos que a la vez son arrays (en lugar de variables simples).

Construcción de un array multidimensional

Vamos a crear un array de libros ($arrBooks):

<?php
$arrBooks = array(
‘Comic’ => array(
‘Title’=>‘Superman’,
‘Author’=>’Jerry Siegel and Joe Shuster’,
‘Publication Date=>1938),
 
‘Science Fiction’ => array(
‘Title’=>‘Dune’,
‘Author’=>’Frank Herbert’,
‘Publication Date=>1965),
 
‘Fantasy’ => array(
‘Title’=>‘The Hobbit’,
‘Author’=>’J.R.R. Tolkien’,
‘Publication Date=>1937),   
 
‘Horror’ => array(
‘Title’=>‘Carrie’,
‘Author’=>’Stephen King’,
‘Publication Date=>1974)
);
?>

Por lo que vemos, tenemos una colección de 4 libros: Superman, Dune, The Hobbit y Carrie.

Extrayendo elementos de un array multidimensional

Para extraer un elemento del array multidimensional, deberemos hacer referencia a los valores del array padre como hijo. Por ejemplo:

<?
echo $arrBooks["Science Fiction"]["Title"]; // El resultado será Dune
echo "<br>";
echo $arrBooks["Horror"]["Author"]; // El resultado será Stephen King
?>

Recorrer un array multidimensional con PHP


La forma más fácil de recorrer un array de más de una dimensión es anidar 2 estructuras forach; la exterior recorrerá cada uno de los elementos globales y la estructura forach interior recorrerá cada uno de los arrays “internos”:

foreach ($arrBooks as $obj_key =>$book)
{
echo "$obj_key Book:<br>";
foreach ($book as $key=>$value){
echo "$key: $value<br>";
}
echo "<br>";
}

El resultado de ejecutar el código anterior sería:

Comic Book:
Title: Superman
Author: Jerry Siegel and Joe Shuster
Publication Date: 1938

Science Fiction Book:
Title: Dune
Author: Frank Herbert
Publication Date: 1965

Fantasy Book:
Title: The Hobbit
Author: J.R.R. Tolkien
Publication Date: 1937

Horror Book:
Title: Carrie
Author: Stephen King
Publication Date: 1974

Funciones de ARRAYS

Los arrays son quizás uno de los recursos más útiles en el mundillo de la programación. Además de su versatilidad, disponen de múltiples funciones que facilitan su tratamiento. La función is_array, por ejemplo, sirve para determinar si estamos trabajando con un array. Por otra parte, la función sort permite ordenar los elementos de un array. Aquí te dejo con otras funciones más avanzadas:

count($array)

Cuenta el número de elementos de un array

<?
$numBooks = count($arrBooks);
echo "There are $numBooks books in the collection.<br>";
?>
 
There are 4 books in the collection.

extract($array)

Convierte string identificativo en una variable. Para que se vea más claro:

<?
$arrBooks = array(    ‘Comic’ => ‘Superman’,
‘ScienceFiction’ => ‘Dune’,
‘Fantasy’ => ‘The Hobbit’,
‘Horror’ => ‘Carrie’);
 
extract($arrBooks);
// $arrBooks[‘Comic’] becomes $Comic
// $arrBooks[‘ScienceFiction’] becomes $ScienceFiction
// $arrBooks[‘Fantasy] becomes $Fantasy
// $arrBooks[‘Horror] becomes $Horror
 
echo "$Comic is a comic book.<br>";
echo "$Fantasy is a fantasy book.<br>";
 
?>
 
Superman is a comic book.
The Hobbit is a fantasy book.

NOTA: extract($array, EXTR_PREFIX_ALL, ‘prefix’): Añade un prefijo a la variable String para diferenciar entre arrays con el mismo key.

<?
$arrBooks = array(
‘Comic’ => ‘Superman’,
‘ScienceFiction’ => ‘Dune’,
‘Fantasy’ => ‘The Hobbit’,
‘Horror’ => ‘Carrie’);
 
extract($arrBooks, EXTR_PREFIX_ALL, "books");
// $arrBooks[‘Comic’] becomes $books_Comic
// $arrBooks[‘ScienceFiction’] becomes $books_ScienceFiction
// $arrBooks[‘Fantasy] becomes $books_Fantasy
// $arrBooks[‘Horror] becomes $books_Horror
 
echo "$books_Comic is a comic book.<br>";
echo "$books_Fantasy is a fantasy book.<br>";
 
$arrFilms = array(
‘Comic’ => ‘Superman Returns’,
‘ScienceFiction’ => ‘Terminator’,
‘Fantasy’ => ‘Dark Crystal’,
‘Horror’ => ‘Friday the 13th’);
 
extract($arrFilms, EXTR_PREFIX_ALL, "films");
// $arrFilms [‘Comic’] becomes $films_Comic
// $arrFilms [‘ScienceFiction’] becomes $films_ScienceFiction
// $arrFilms [‘Fantasy] becomes $films_Fantasy
// $arrFilms [‘Horror] becomes $films _Horror
 
echo "$films_Comic is a comic film.<br>";
echo "$films_Fantasy is a fantasy film.<br>";
?>
 
Superman is a comic book.
The Hobbit is a fantasy book.
Superman Returns is a comic film.
Dark Crystal is a fantasy film.

compact(var1, var2, var3)

Compacta una lista de variables en un array

<?
$Comic = ‘Batman’;
$ScienceFiction = ‘Dreaming Void’;
$Fantasy = ‘American Gods’;
$Horror = ‘Frankenstein’;
 
$arrBooks2 = compact (‘Comic’, ‘ScienceFiction’, ‘Fantasy’, ‘Horror’);
 
foreach ($arrBooks2 as $key => $value) {
print  "$value is an example of a $key book.<br>\n";
}
?>
 
Batman is an example of a Comic book.
Dreaming Void is an example of a ScienceFiction book.
American Gods is an example of a Fantasy book.
Frankenstein is an example of a Horror book.

Posts Relacionados: 3 plugins SEO para WP que deberías conocer | 30 sitios donde descargar imágenes gratuitas | Formas de perder el tiempo posicionando webs | Qué hacer si Google te ha penalizado en su ‘last update’ | Menú de subnavegación (CSS+JQuery) | NounProject: Gran colección de iconos vectoriales | Reveal: Ventanas modales con jQuery | Contactable: Formularios accesibles con jQuery | jQuery: 10 snippets útiles que deberías conocer | Formulario en varios pasos usando jQuery |

Deja un comentario




Categorías