Arrays multidimensionales en PHP: Funciones básicas
- 28 enero, 2012 -
- PHP -
- 0 Comentarios
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 |