Las matrices son comunes no solo en PHP, sino en cualquier lenguaje de programación con el que te encuentres. Los arrays son muy útiles ya que nos permiten agrupar información de una forma muy organizada. En esencia, una matriz es una colección de diferentes piezas de información o datos que se ordenan e indexan mediante números enteros. La información se almacena en posiciones de índice específicas, lo que hace que sea conveniente insertarla y extraerla de cada bolsillo o índice, por así decirlo. Una matriz puede contener prácticamente cualquier cosa que desee poner en ella, ya sea una cadena, un número, un entero, valores de punto flotante, otra matriz o un objeto. Vamos a utilizar matrices cada vez más en el futuro, así que vamos a profundizar en lo esencial con las matrices PHP ahora.


Creando una matriz en PHP

Con esos pensamientos iniciales en mente con respecto a las matrices, creemos una y pongamos algo de información en ella. En este ejemplo, imaginemos que queremos tener una sola variable que contenga una colección de estilos de casas. Podemos hacer esto creando una matriz, llenando dicha matriz con los estilos que queremos y luego asignando esa matriz a la variable. Así es como podemos hacer esto:

Así, tenemos una matriz que ahora se almacena en la $housesvariable. Genial, entonces, ¿cómo obtenemos información de nuestra matriz ahora? Bueno, intentemos hacer eco de la información en esa matriz como lo hemos estado haciendo con todos los otros tipos de variables hasta ahora.

Aviso: conversión de matriz a cadena en C: wampwwwphpconsoleindex.php (61): eval () 'código d en la línea 3
Matriz

Hmm. No es bueno. Cuando intentamos hacer eco de la información en nuestra variable, nos dio una advertencia. Sin embargo, nos dijo que la variable contiene una matriz. Existe una notación diferente para trabajar con matrices cuando nos gustaría recuperar información de ellas. Necesitamos especificar el índice en el que estamos interesados ​​usando la notación de corchetes como tal []Deberá tener en cuenta que las matrices se basan en cero. Eso significa que con las matrices no comienzas a contar desde 1, cuentas a partir de 0. Entonces, en nuestro ejemplo, llenamos nuestra matriz con f diferentes estilos de casas. Esto significa que tenemos que buscar en el índice [0][1][2], y [3]Observe cómo usamos los corchetes para encerrar el índice al que queremos tener acceso. Probémoslo en nuestro campo de pruebas:

Metro colonial
contemporáneo del
suroeste

¡Agradable! Ahora estamos viendo cómo obtener la información de la variable. Entonces, en el índice cero tenemos nuestro Colonial, el índice 1 tiene un Contemporáneo, el índice 2 Southwestern y el índice 3 tiene un Metro. Con las matrices puede almacenar tantos valores como necesite, tal vez tenga 500 correos electrónicos que desee almacenar en una variable, con una matriz puede hacerlo sin problema.

Valores mixtos en matrices

Cuando tiene una matriz, no está limitado a los tipos que puede almacenar en ella. Justo arriba ponemos un puñado de cadenas en la $housesvariable. Ahora, podemos configurar una variable que sea un poco más dinámica. Veamos cómo.

coche de la
casa

Excelente. Primero, asignamos un montón de valores a nuestra nueva matriz dinámica. En el índice 0 colocamos un número, específicamente un entero. En el índice 1 hay una cadena. El índice 2 también es una cadena. Tenga en cuenta que en el tercer índice hay una matriz. Bueno, ¿qué tal esa América, una matriz dentro de una matriz? ¡Sí tu puedes! Considere esto como una introducción a las matrices multidimensionales. Tener una matriz dentro de una matriz requiere que pongamos nuestro límite de pensamiento. Vimos cómo llegar a los datos contenidos en una matriz simple, ahora cómo lidiar con este tipo de cosas. Veamos.

7
Casa
coche
hierba
cortadora de
mantillo

¡Fantástico! Cuando hay una matriz dentro de una matriz, necesita subir de nivel a su compañero. Es decir, necesitas pasar al siguiente nivel. Observe cómo usamos la notación de corchetes dobles para profundizar en esa matriz dentro de una matriz[][]¿Qué está haciendo esto por nosotros? Bueno, ya ve, en el primer corchete, debemos especificar dónde queremos mirar. En este caso, queremos mirar la posición 3 ya que es donde vive la segunda matriz en la que queremos mirar. Ok, genial, ahora solo repite el proceso. Ahora que ha especificado la tercera posición de la primera matriz, ¿a qué posición de la segunda matriz desea acceder? Ponga este valor en el segundo corchete. Así es como accede a las matrices dentro de las matrices y esto es lo que llama una matriz multidimensional. Tampoco estás limitado a solo dos niveles. Puede tener matrices dentro de matrices dentro de matrices, sin embargo, comenzará a volverse loco si anida estas cosas en exceso. Una buena regla general es intentar imitar configuraciones de datos reales que puede encontrar en el mundo real. Aunque solo por diversión

coche de la
casa

césped
John Deere
Kubota
New Holland
mulch

Excelente. Vea cómo ahora que hay una matriz dentro de una matriz dentro de una matriz, solo usamos la notación de tres corchetes [][][]para obtener esos datos. ¿Existe realmente una necesidad de llegar a tantos niveles de profundidad? No mucho, pero ayuda saber cómo encajan estas cosas, al igual que nuestro amado y sofisticado sistema de ladrillos entrelazados (Legos).

Mire profundamente en la matriz

Cuando se enfrenta a la tarea de profundizar en el abismouna matriz, puede hacer uso de la siempre útil print_r()función para ver cómo está estructurada la matriz. Hace que los datos dentro de una matriz sean mucho más fáciles de leer. Además de utilizar la print_r()función, ayuda a envolver la salida dentro de las etiquetas previas html. Veamos cómo funciona esto.

Matriz ([0] => 7 [1] => Casa [2] => Coche [3] => Matriz ([0] => césped [1] => Matriz ([0] => John Deere [1] => Kubota [2] => New Holland) [2] => mantillo))

Observe aquí que usamos la print_r()función un par de veces. La diferencia es que la segunda vez, envolvemos la salida en preetiquetas html. Las etiquetas previas proporcionan una salida formateada agradable para que sea más fácil ver cómo se anidan las cosas dentro de la matriz. Vea cómo cada vez que llegamos a otra matriz, la salida se sangra para darnos una indicación visual de que algo interesante está sucediendo aquí. Pon esa print_r()función en tu bolsillo trasero, la vas a usar todo el tiempo al depurar tu código. Hay una cosa que debe tener en cuenta al recuperar datos de sus matrices, y es que debe especificar un índice que realmente exista o obtendrá un error.

Aviso: Desplazamiento indefinido: 4 en C: wampwwwphpconsoleindex.php (61): eval () 'código d en la línea 3

Verá que obtenemos un error de compensación indefinido si especificamos recuperar datos de un índice que no existe. Parece que nos gustaría obtener datos del índice 4, pero no hay nada allí, bueno, agreguemos algunos datos en ese bolsillo, es bastante fácil de hacer, compruébelo.

Bicicleta

Simplemente asignando un nuevo valor a la variable $dynamic[]usando la notación entre corchetes, PHP sabe que desea agregar algo al final de la matriz. Tenga en cuenta que ni siquiera tuvo que indicar que era la posición 4 donde deseaba colocar algo, simplemente lo hizo por usted. Para llevar la idea a casa, veamos un ejemplo más.

Este es un buen ejemplo aquí. Vea cómo podemos sobrescribir fácilmente un índice existente simplemente asignándole un nuevo valor. Es por eso que el índice 1 ya no tiene una casa, sino una casa grande. Suponga que necesita agregar algo en una posición específica, nosotros también lo hicimos. Tenga en cuenta que el índice 9 ahora tiene una tabla de surf.


Matrices asociativas

Estamos manejando bien las matrices en PHP, pero aún no hemos terminado. Hasta ahora hemos estado trabajando con arreglos sencillos basados ​​en índices vanilla. La matriz basada en índices estándar se basa en teclas numéricas para trabajar con ellos. Las claves a menudo son invisibles para nosotros hasta que realmente generamos la matriz completa con una impresión bonita. Las matrices asociativas son un poco diferentes en el sentido de que las claves deben especificarse explícitamente mediante una etiqueta de algún tipo. Piense en ello como una colección de carpetas de archivos con etiquetas. La etiqueta de la carpeta es la clave, mientras que el contenido ubicado dentro de la carpeta es el valor. La forma más sencilla de ver cómo funciona esto es simplemente mirar algún código.



¡Buen trabajo! Hemos convertido nuestra antigua matriz estándar aburrida en una matriz completamente asociativa. Ahora podemos acceder a estos datos utilizando claves con nombre de algún tipo en lugar de solo índices numéricos. Para ser justos, todo lo que hicimos fue una bonita impresión del contenido, así que veamos la sintaxis real que necesitaríamos usar para acceder a toda esta información.

7
Casa
Coche
césped
John Deere
Kubota
New Holland
mulch

¡Resbaloso! Vea cómo en lugar de poner el número del índice entre los corchetes, ahora ponemos la etiqueta, cualquiera que sea. Tenga en cuenta que para las matrices dentro de las matrices, es posible que deba usar una combinación de etiquetas asociativas y basadas en índices para obtener los datos que está buscando, tal como lo hicimos anteriormente.

Terminando

Cubrimos los conceptos básicos de las matrices PHP. Utilice este y otros ejemplos para perfeccionar sus habilidades. Pronto profundizaremos en todas las increíbles funciones para lidiar con matrices que PHP nos proporciona, ¡y hay muchas!