Menú
Está libre
registrarse
el principal  /  Problemas / Tipos de matrices en PHP. Anuncio de una matriz en PHP, tipos de matrices y trabajo con elementos PHP para pasar un macizo asociativo

Tipos de matrices en PHP. Anuncio de una matriz en PHP, tipos de matrices y trabajo con elementos PHP para pasar un macizo asociativo

Arreglos asociativos

Las matrices simples usan las teclas solo para separar elementos y no tienen valor práctico:

En las matrices asociativas, las llaves describen que es para que lo signifiquen. Edad, nombre, etc.

"Vladimir", "Edad" \u003d\u003e 20]; \u003e\u003e

Arreglos bidimensionales y multidimensionales.

Hasta ahora, solo nos ocupamos de matrices unidimensionales, pero también podemos crear una matriz multidimensional o de dos dimensiones:

"Vasya"]; $ Humano ["Manos"] \u003d ["Izquierda", "Derecho"]; Print_r ($ humano); \u003e\u003e

Como puede ver, hemos creado una matriz de $ humano, y luego en su interior creó otra serie de $ humanos ["manos"]. Resultado en el navegador:

Array (\u003d\u003e Vasya \u003d\u003e Array (\u003d\u003e izquierda \u003d\u003e derecha))

Podemos crear matrices multidimensionales de cualquier anidamiento. La salida de los valores de dicha matriz es la siguiente:

Aplicación práctica de matrices multidimensionales.

¿Recuerdas, en la lección anterior, queríamos agrupar bienes y sus características? Déjame recordarte el código que obtuvimos:

Ahora podemos colocar toda esta información en una variable. Al mismo tiempo, cada producto será una matriz asociativa, y todos los bienes estarán dentro de una simple matriz:

"iPhone", "Precio" \u003d\u003e 5000, "Cantidad" \u003d\u003e True], ["Nombre" \u003d\u003e "Samsung Galaxy", "Precio" \u003d\u003e 5000, "Cantidad" \u003d\u003e True], ["Nombre" \u003d \u003e "Nokia Lumia", "Precio" \u003d\u003e 4000, "Cantidad" \u003d\u003e Verdadero]]; \u003e\u003e

O una alternativa:

"iPhone", "Precio" \u003d\u003e 5000, "Cantidad" \u003d\u003e True]; $ Productos \u003d ["Nombre" \u003d\u003e "Samsung Galaxy", "Precio" \u003d\u003e 5000, "Cantidad" \u003d\u003e True]; $ Productos \u003d ["Nombre" \u003d\u003e "Nokia Lumia", "Precio" \u003d\u003e 4000, "Cantidad" \u003d\u003e True]; \u003e\u003e

El resultado de ambas opciones será:

Array (\u003d\u003e Array (\u003d\u003e iPhone \u003d\u003e 5000 \u003d\u003e 1) \u003d\u003e Array (\u003d\u003e Samsung Galaxy \u003d\u003e 5000 \u003d\u003e 1) \u003d\u003e Array (\u003d\u003e Nokia Lumia \u003d\u003e 4000 \u003d\u003e 1))

1. Cree una matriz de $ Ciudad, agregue la llave del nombre con cualquier valor. 2. Crea una calles sumisa con cualquier calles aleatorias. Cada calle debe tener un nombre (nombre) y la cantidad de casas (edificios_count), así como una subsesión de las casas (Old_Buildings) para ser demolidos.

Matriz asociativa- Un tipo de datos indispensable utilizado para describir el conjunto de claves y valores asociativos únicos, es un elemento básico de todos los lenguajes de programación, incluidos PHP. Esencialmente, las matrices asociativas desempeñan un papel tan importante en la programación web que el PHP incluye soporte para múltiples funciones y propiedades capaces de controlar las matrices de datos por todas las formas imaginables. Tal amplio soporte puede ser demasiado engorroso para los desarrolladores que buscan las formas más efectivas de administrar matrices en sus aplicaciones. En este artículo, daré 10 consejos que lo ayudarán a reducir, animar y brillar sus datos con un número infinito de formas.

1. Agregar unementos de matriz.

PHP es un lenguaje de escritura débil, es decir, no necesita describir en detalle la matriz o su tamaño. En su lugar, una matriz puede declararse simultáneamente y rellene:

$ Capitales \u003d Array ("Alabama" \u003d\u003e "Montgomery", "Alaska" \u003d\u003e "Juneau", "Arizona" \u003d\u003e "Phoenix");

Los elementos adicionales de la matriz se pueden unir de la siguiente manera:

$ Capitales ["Arkansas"] \u003d "Little Rock";

Si trabaja con matrices, números numerados y prefiere conectar elementos (al comienzo de una matriz) y adjuntar elementos utilizando una función detallada, considere las funciones de Array_Push () y Array_UnShift () (estas funciones no funcionan con matrices asociativas).

2. Eliminar elementos de matriz.

Para eliminar un elemento de matriz, use la función UNSET ():

Sin tomar ($ capitales ["california"]);

Trabajar con matrices, números numerados, obtienes más libertad en la eliminación de los elementos de la matriz. Es decir, puede usar las funciones Array_Shitt () y Array_POP () para eliminar el elemento desde el principio y desde el final de la matriz, respectivamente.

3. Cambiamos las llaves y los valores.

Supongamos que quería crear una nueva matriz llamada $ estados, los estados de los estados en los que serán índices, y los estados en sí mismos son valores asociativos. Esta tarea (cambios en las claves y los valores de los lugares) se resuelve fácilmente utilizando las funciones de Array_Flip ():

$ Capitales \u003d Array ("Alabama" \u003d\u003e "Montgomery", "Alaska" \u003d\u003e "Juneau", "Arizona" \u003d\u003e "Phoenix"); $ Estados \u003d array_flip ($ capitales); // $ estados \u003d Array (// "Montgomery" \u003d\u003e String "Alabama", // "Juneau" \u003d\u003e String "Alaska", // "Phoenix" \u003d\u003e String "Arizona" //);

4. Fusionar masivos

Supongamos que la matriz anterior se usó junto con la tarjeta Flash basada en tecnologías web (Flashcard, una tarjeta con texto e imagen (utilizada en la capacitación en un idioma extranjero)), y desea permitir que los estudiantes revisen su conocimiento, no solo sobre el mundo. Capitales, pero las capitales de los Estados Unidos. Puede conectar una matriz (con capitales de estado) con una matriz (con capitales mundiales) utilizando la función Array_Merge ():

$ statecapitales \u003d Array ("Alabama" \u003d\u003e "Montgomery", "Alaska" \u003d\u003e "Juneau", "Arizona" \u003d\u003e "Phoenix"); $ Countrycapitales \u003d Array ("Australia" \u003d\u003e "Canberra", "Austria" \u003d\u003e "Viena", "Argelia" \u003d\u003e "Argel"); $ Capitales \u003d array_merge ($ statecapitales, $ countrycapitales);

5. Edición de valores de matriz.

Supongamos que los datos que se encuentran en la matriz pueden contener errores asociados con el uso de letras mayúsculas, y desea corregir estos errores antes de realizar datos en la base de datos. En este caso, puede usar la función Array_Map () para aplicar la función de devolución de llamada a cada elemento de la matriz:

Función capitalizar ($ elemento) ($ elemento \u003d strtolower ($ elemento); // Transferir todas las letras al registro inferior Retorno de UCWORTS ($ elemento); // Nos transformamos en la parte superior Registre el primer carácter de cada palabra en la línea) $ Capitales \u003d Array ("Alabama" \u003d\u003e "Montgomery", "Alaska" \u003d\u003e "Juneau", "Arizona" \u003d\u003e "Phoenix"); $ Capitales \u003d array_map ("capitalizar", $ capitales);

6. Ordenamos las matrices en las llaves.

Flashcard - Flashcard: una tarjeta con texto e imagen (utilizada en la capacitación en un idioma extranjero)) Resort a diversas técnicas de aprendizaje, incluida la clasificación de tarjetas en ciertos métodos, por ejemplo, alfabéticamente. Puede ordenar matrices asociativas por llaves usando la función Ksort ():

$ Capitales \u003d matriz ("Arizona" \u003d\u003e "Phoenix", "Alaska" \u003d\u003e "Juneau", "Alabama" \u003d\u003e "Montgomery"); Ksort ($ capitales);

7. Aleatorización del orden de la matriz.

Mezcle los elementos en orden aleatorio utilizando la función SHUFFLE ():

$ Capitales \u003d matriz ("Arizona" \u003d\u003e "Phoenix", "Alaska" \u003d\u003e "Juneau", "Alabama" \u003d\u003e "Montgomery"); baraja ($ capitales); Foreach ($ capitales como $ k \u003d\u003e $ v) echo "$ k: $ v
";

Resultado:

Prestar atención a la salida obtenemos una matriz no asociativa, pero una matriz numérica..

Si en lugar de la aleatorización de la matriz que desea seleccionar un valor, use la función Array_Rand ().

8. Determinar si las llaves y los valores existen

Puede usar in_array () con una función para determinar si existen los elementos de la matriz:

$ Capitales \u003d matriz ("Arizona" \u003d\u003e "Phoenix", "Alaska" \u003d\u003e "Juneau", "Alabama" \u003d\u003e "Montgomery"); Si (in_array ("Juneau", $ Capitales)) (Echo "existe!";) De lo contrario (ECHO "no existe!";)

La capacidad de determinar: hay llaves de matriz, menos conocidas. Se implementa utilizando las funciones Array_Key_Exists ():

$ Capitales \u003d matriz ("Arizona" \u003d\u003e "Phoenix", "Alaska" \u003d\u003e "Juneau", "Alabama" \u003d\u003e "Montgomery"); Si (Array_Key_Exists ("Alaska", $ Capitales)) (Echo "¡Existe!";) Else (eco "¡la clave no existe!";)

9. Estamos buscando una matriz.

Tal vez quiera suministrar a Flashland una búsqueda de recursos para que los usuarios encuentren un personal asociado con un cierto capital. Esto se puede hacer utilizando la función Array_Search () (esta función está buscando un valor específico en la matriz y devuelve la tecla correspondiente):

$ Capitales \u003d matriz ("Arizona" \u003d\u003e "Phoenix", "Alaska" \u003d\u003e "Juneau", "Alabama" \u003d\u003e "Montgomery"); $ State \u003d Array_Search ("Juneau", $ capitales); // $ State \u003d "Alaska"

10. Biblioteca estándar de PHP

La Biblioteca Estándar PHP (SPL) proporciona a los desarrolladores un número decente de estructuras de datos, interfaces, excepciones y otras propiedades que el idioma PHP no pudo presumir. Entre estas propiedades se encuentra la posibilidad de iteración (repetición) de la matriz utilizando sintaxis orina a objetos.

$ Capitales \u003d matriz ("Arizona" \u003d\u003e "Phoenix", "Alaska" \u003d\u003e "Juneau", "Alabama" \u003d\u003e "Montgomery"); $ ArrayObject \u003d New ArrayObject ($ CAPITALS); Foreach ($ ArrayObject como $ State \u003d\u003e $ Capital) (Printf ("El capital de% s es% s
", $ State, $ Capital);) // La capital de Arizona es Phoenix // La capital de Alaska es Juneau // la capital de Alabama es Montgomery

Esta es solo una de las propiedades de clase incluidas en SPL. Para obtener más información, familiarícese con la documentación de PHP.

Los elementos de la matriz en PHP pueden contener valores de cualquier tipo, como números, filas, objetos. También pueden contener otras matrices, que en realidad significa la creación. multidimensional o anidado Formación.

En esta lección, se consideran matrices multidimensionales (incrustadas) PHP. Se explica cómo crearlos, cómo manipularlos cómo organizar un ciclo a lo largo de la matriz multidimensional en PHP.

Cómo crear una matriz multidimensional

Puede crear una matriz multidimensional utilizando el diseño de la matriz (), que es muy similar a la creación de una matriz convencional. La diferencia radica en el hecho de que en la matriz multidimensional, cada elemento también es una matriz.

Por ejemplo:

$ MYARRAY \u003d matriz (matriz (valor1, valor2, valor3), matriz (valor4, valor5, valor6), matriz (valor7, valor8, valor9));

El ejemplo anterior crea una matriz bidimensional. La matriz de nivel superior contiene 3 elementos. Cada elemento también es una matriz que contiene 3 valores.

También puede usar una matriz asociativa como una matriz multidimensional. El siguiente ejemplo demuestra la creación de una matriz indexada que contiene 3 matriz asociativa:

$ Películas \u003d Array (Array ("Título" \u003d\u003e "Ventana trasera", "Director" \u003d\u003e "Alfred Hitchcock", "Año" \u003d\u003e 1954), Array ("Título" \u003d\u003e "Chaqueta de metal completa", "Director "\u003d\u003e" Stanley Kubrick "," Año "\u003d\u003e 1987), Array (" Título "\u003d\u003e" Calles malas "," Director "\u003d\u003e" Martin Scorsese "," Año "\u003d\u003e 1973));

Puede poner matrices uno a otro tan profundo según sea necesario (aunque en la práctica, la profundidad de anidación rara vez tiene más de 3 niveles). En el siguiente ejemplo, se demuestra una matriz tridimensional:

$ MyArray \u003d Array (matriz (valor1, valor2), matriz (valor3, value4)), matriz (matriz (valor5, valor6), matriz (valor7, valor8)));

Acceso a elementos en una matriz multidimensional.

Para obtener acceso a los elementos de la matriz multidimensional, puede usar la sintaxis "Square Corchets", que se utiliza para trabajar con una matriz convencional. Si necesita acceder a los elementos de segundo nivel en una matriz bidimensional, solo necesita usar el segundo conjunto de corchetes, por ejemplo:

$ MyArray \u003d Array (Array (uno "," Dos "," Tres "), matriz (cuatro," Cinco "," Seis ")); // retirar "Six" Echo $ MYARRAY; \u003e\u003e

Pero un ejemplo que demuestra el acceso a varios elementos de una matriz multidimensional de $ películas, que creamos anteriormente:

Echo "Primer nombre de película:
"; Echo $ películas [" título "]".

"; Echo" Director de la Tercera Película:
"Echo $ Películas [" Director "]".

"; echo" matriz anidado, que está contenido en el primer elemento:
"; Print_r ($ películas); echo"

";

Se emitirá la ejecución del código el siguiente resultado:

Nombre de la primera película: Ventana trasera El director de la tercera película: Martin Scorsese es una matriz integrada, que está contenida en el primer elemento: Array (\u003d\u003e Ventana trasera \u003d\u003e Alfred Hitchcock \u003d\u003e 1954)

El último ejemplo utiliza $ Películas para organizar el acceso a toda la matriz anidada en el primer elemento de la matriz de nivel superior, y luego la función Print_r () se usa para generar el contenido de la matriz.

Organización de extinguir todos los elementos de una matriz multidimensional en el ciclo.

Al igual que para una matriz unidimensional ordinaria, puede usar foreach para organizar el bullicio de todos los elementos de la matriz multidimensional. Debe crear un ciclo de foreach incrustado, es decir, un ciclo dentro del otro:

  1. El ciclo externo toma cada elemento de la matriz de nivel superior.
  2. Para cada elemento del nivel superior, el ciclo interno pasa por una matriz incrustada, y así sucesivamente.

El ejemplo crea una matriz de 2 dimensiones con información sobre películas, y luego se organiza un ciclo por elementos de matriz para mostrar información en la página:

$ Películas \u003d Array (Array ("Título" \u003d\u003e "Ventana trasera", "Director" \u003d\u003e "Alfred Hitchcock", "Año" \u003d\u003e 1954), Array ("Título" \u003d\u003e "Chaqueta de metal completa", "Director "\u003d\u003e" Stanley Kubrick "," Año "\u003d\u003e 1987), Array (" Título "\u003d\u003e" Calles malas "," Director "\u003d\u003e" Martin Scorsese "," Año "\u003d\u003e 1973)); Foreach ($ películas como $ Película) (Echo "

"; Foreach ($ Película como $ clave \u003d\u003e $ valor) (eco"
Clave $.
$ valor
";) Eco"
"; }

La ejecución de este Código se le dará el siguiente resultado:

Título Director de la ventana trasera Alfred Hitchcock Año 1954 Título Full Chaqueta de metal Director STANLEY KUBICK AÑO 1987 TÍTULO MEDIO CALLES CALLES Director Martin Scorsese Año 1973

Resumen

Las matrices multidimensionales son adecuadas para almacenar cualquier dato, por ejemplo, para almacenar múltiples registros de base de datos o valores para mostrar en tablas. El uso de matrices multidimensionales puede aumentar el nivel de funcionalidad de los scripts PHP.

La lección considerará las posibilidades de trabajar con matrices en PHP, el anuncio de la matriz, tipos de matrices: matrices multidimensionales y asociativas

  1. Arreglos con índices numéricos.
  2. $ frutas \u003d "manzana"; $ frutas \u003d "pera"; $ Frutas \u003d "naranja"; $ Frutas \u003d "albaricoque";

    Esta opción para inicializar la matriz hoy en día es prácticamente no utilizada. La siguiente opción se usa con matrices:

  3. Matriz asociativa
  4. Esta variante de crear una matriz utiliza un objeto de matriz:

    $ Frutas \u003d matriz (1 \u003d\u003e "Apple", 2 \u003d\u003e "Pera", 3 \u003d\u003e "Orange", 4 \u003d\u003e "albaricoque"); // A partir de PHP 5.4 $ Fruits \u003d Array [1 \u003d\u003e "Apple", 2 \u003d\u003e "Pera", 3 \u003d\u003e "Orange", 4 \u003d\u003e "" albaricoque "];

    Acceso a los elementos de la matriz.

    1 2 3 4 5 6 7 8 $ Frutas [0] \u003d "Apple"; $ Frutas [1] \u003d "pera"; $ Frutas [2] \u003d "naranja"; $ Frutas [3] \u003d "albaricoque"; Eco. "El primer elemento de la matriz -". $ Frutas [0]. "
    "; Eco "El segundo elemento de la matriz -". $ Frutas [1]. "
    "; Eco "El tercer elemento de la matriz -". $ Frutas [2]. "
    " ;

    $ frutas \u003d "manzana"; $ frutas \u003d "pera"; $ Frutas \u003d "naranja"; $ Frutas \u003d "albaricoque"; Echo "El primer elemento de la matriz -". $ frutas ".
    "; Echo" el segundo elemento de la matriz - ". $ Frutos".
    "Echo" El tercer elemento de matriz - ". $ Frutos".
    ";

    El resultado del programa será:

    Importante: Como un índice de un elemento en una matriz asociativa puede no ser un número, sino una palabra (tipo cuerda)

    Considere un ejemplo:

    Ejemplo: Cree una matriz de estudiantes con nombres, apellidos y edad de edad. Muestra los valores de los elementos de la matriz.

    $ Estudiante \u003d matriz ("nombre" \u003d\u003e John, "Apellido" \u003d\u003e Smith, "Edad" \u003d\u003e 20); Echo "nombre de usuario". $ Estudiante ["nombre"]. "


    ";

    $ Estudiante ["nombre"] \u003d "John"; $ Estudiante ["Apellido"] \u003d "Smith"; $ Estudiante ["edad"] \u003d 20; Echo "nombre de usuario". $ Estudiante ["nombre"]. "
    "; Echo" apellido del usuario ". $ Estudiante [" Apellido "]".
    "; Echo" Edad del usuario ". $ Estudiante [" edad "]".
    ";

    Resultado:

    Importante: Las teclas de cuerda (índices) siempre deben entrar en comillas

    Arrays indexados sin clave:

    También debe considerarse que los índices en la matriz generalmente no pueden escribir cuando la matriz se inicializa por los valores. Luego creamos el llamado colección masiva(colección de objetos):

    $ Estudiante \u003d matriz ("John", "Smith", 20);

    $ Estudiante \u003d matriz ("John", "Smith", 20);

    En este caso, el propio intérprete les asignará índices numéricos, comenzando con 0

    Ejemplo Convertir tipos y sobrescribir elementos.
    Preste atención al uso del procedimiento VAR_DUMP ()

    1 2 3 4 5 6 7 8 9 "A", "1" \u003d\u003e "B", 2 \u003d\u003e "C", 2 \u003d\u003e "D",); Var_dump ($ my_array); \u003e\u003e

    "A", "1" \u003d\u003e "B", 2 \u003d\u003e "C", 2 \u003d\u003e "D",); Var_dump ($ my_array); \u003e\u003e

    Resultado:

    Array (3) (\u003d\u003e String (1) "A" \u003d\u003e STRING (1) "B" \u003d\u003e STRING (1) "D")

    Ejemplo Usar arreglo multidimensional y organización de acceso a sus elementos.

    1 2 3 4 5 6 7 8 9 10 11 12 "1", 2 \u003d\u003e 2, "Multi" \u003d\u003e Array ("1_1" \u003d\u003e "1_1")); Var_dump ($ array_odnom ["primero"]); var_dump ($ array_odnom [2]); Var_dump ($ Array_odnom ["Multi"] ["1_1"]); \u003e\u003e

    "1", 2 \u003d\u003e 2, "Multi" \u003d\u003e Array ("1_1" \u003d\u003e "1_1")); Var_dump ($ array_odnom ["primero"]); Var_dump ($ array_odnom); Var_dump ($ Array_odnom ["Multi"] ["1_1"]); \u003e\u003e

    Resultado:

    Cadena (1) "1" int (2) cadena (3) "1_1"

    Ejemplo: Cree una matriz bidimensional de 3 x 2. Llenelo con valores para la primera cadena: "1_1", "1_2", "1_3"; Para la segunda línea: "2_1", "2_2", "2_3". Muestra el primer elemento de la matriz.


    Actuación:
    1 2 3 4 5 6 7 8 9 10 11 12 $ Array_odnom \u003d Array (1 \u003d\u003e Array (1 \u003d\u003e "1_1", 2 \u003d\u003e "1_2", 3 \u003d\u003e "1_3"), 2 \u003d\u003e Array (1 \u003d\u003e "2_1", 2 \u003d\u003e "2_2" , 3 \u003d\u003e "2_3"),); echo $ array_odnom [1] [1];

    $ Array_odnom \u003d Array (1 \u003d\u003e Array (1 \u003d\u003e "1_1", 2 \u003d\u003e "1_2", 3 \u003d\u003e "1_3"), 2 \u003d\u003e Array (1 \u003d\u003e "2_1", 2 \u003d\u003e "2_2" , 3 \u003d\u003e "2_3"),); echo $ array_odnom;

    Tarea PHP2_1: Cree una matriz bidimensional de 3 x 3: esquina superior izquierda de la tabla de multiplicación de Pythagora (1, 2, 3; 4, 6, 8 ...)



    Trabajo de laboratorio:
    Supongamos que tiene algún anuncio y varias personas diferentes que necesitan este anuncio para enviar. Para hacer esto, se hace un espacio en blanco con un contenido de AD dentro del cual hay una serie de parámetros cambiantes: la matriz de nombres de las personas y una matriz de eventos. Muestra una opción del anuncio final en la pantalla. Para especificar matrices para usar tanto una matriz asociativa.

    Use la plantilla de anuncios y enfoque en los colores:

    Rojo - matrices.
    Brown - la variable numérica.
    Azul - constante.

    Querido (Aya), Ivan Ivanovich!
    Te invitamos a dia abierto.
    Fecha de los acontecimientos: 12 de mayo.
    Con respeto, Vasily.


    Código completo:
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 // ANUNCIO CONSTANTA Definir ("Signo", "Saludos, Vasya") ; // Array para los nombres de destinatarios $ Nombres \u003d matriz (...); // Array para eventos $ Eventos \u003d Array ("OP_DOORES" \u003d\u003e "Dia abierto", "Vistavka" \u003d\u003e "Exposición", ...); $ Str \u003d. "Queridos (Aya), $ Nombres!
    "
    ; $ str. \u003d ...; $ str. \u003d ...; eco ...;

    // Anuncio de la constante define ("Signo", "Saludos, Vasya"); // Array para los nombres de las direcciones $ nombres \u003d matriz (...); // Array para eventos $ Eventos \u003d Array ("OP_DOORSE" \u003d\u003e "Open Day", "Vistavka" \u003d\u003e "Exposición", ...); $ str \u003d "querido (aya), $ nombres!
    "$ Str. \u003d ...; $ str. \u003d ...; echo ...;

Última actualización: 1.11.2015

Las matrices están diseñadas para almacenar conjuntos de datos o elementos. Cada elemento en la matriz tiene su propia clave y valor únicos. Por lo tanto, guarde la matriz de modelos de teléfono:

"; ?>

Aquí hay una matriz de $ teléfonos de cuatro elementos. Cada elemento en la matriz es un par de clave, un valor. Por lo tanto, el primer elemento $ Thones \u003d "Nokia N9" tiene una clave: número 0, y el valor es la cadena "Nokia N9". En tales matrices, las claves numéricas también se llaman índices.

Usando la función CUENTA (), puede encontrar la cantidad de elementos en la matriz. Y debido al hecho de que las teclas van de 0 a 3, y conocer el tamaño de la matriz, es posible generar los elementos de las matrices en el ciclo.

Para aclarar más claramente la relación de las teclas y los valores de los elementos, retire una matriz usando la función Print_R:

Print_r ($ teléfonos);

Tendremos la siguiente conclusión:

Array (\u003d\u003e Nokia N9 \u003d\u003e Samsung Galaxy Ace II \u003d\u003e Sony Xperia Z3 \u003d\u003e Samsung Galaxy III)

Esta creación de la matriz también será equivalente a lo siguiente:

"; ?>

Si la clave elemento no especifica, el PHP usa los números como llaves. En este caso, la numeración de las teclas comienza con rasguño, y cada nueva clave aumenta por unidad.

Conocer la clave de elementos en la matriz, podemos referirnos a este artículo, obtener o cambiar su valor:

// obtenemos un elemento en la clave de $ 1 myPhone \u003d $ teléfonos; Echo "$ MyPhone
"; // Asignación de un nuevo valor $ Phones \u003d" Samsung X650 "; echo" $ teléfonos
";

Pero no solo los enteros pueden usarse como llaves, sino también líneas:

También se llaman matrices similares. de asociación.

Matriz del operador.

Arriba fue considerado una forma de crear una matriz. Pero hay otro, que prevé la aplicación del operador de la matriz ().

El operador de la matriz () toma un conjunto de elementos. Aquí también indicó explícitamente las llaves. Por lo tanto, PHP canta automáticamente los elementos desde cero. Pero también podemos especificar la clave para cada elemento:

"iPhone5", "Samsumg" \u003d\u003e "Samsung Galaxy III", "Nokia" \u003d\u003e "Nokia N9", "Sony" \u003d\u003e "Sony Xperia Z3"); Echo $ Thones ["Samsumg"]; \u003e\u003e

Operación \u003d\u003e Le permite hacer coincidir la tecla con un cierto valor.

Busto de los masivos asociativos

Por encima, parecíamos usar el ciclo para el ciclo para generar todos los elementos de la matriz, donde las teclas se especifican en serie de 0 a 3. Sin embargo, no funciona con matrices asociativas. Y para ellos en PHP, se diseñó un tipo especial de ciclo: foreach ... como:

"iPhone5", "Samsumg" \u003d\u003e "Samsung Galaxy III", "Nokia" \u003d\u003e "Nokia N9", "Sony" \u003d\u003e "Sony Xperia Z3"); Foreach ($ teléfonos como $ artículo) echo "$ artículo
"; ?>

En el ciclo de perforación, todos los artículos se eliminan secuencialmente de la matriz y el valor se coloca en la variable especificada después de la palabra clave. En este caso, los cuatro valores de la matriz de $ THONES se colocan en la variable de artículo $. Cuando se extrae el último elemento de la matriz, se completa el ciclo.

El bucle forach le permite extraer no solo los valores, sino también las claves de los elementos:

"iPhone5", "Samsumg" \u003d\u003e "Samsung Galaxy III", "Nokia" \u003d\u003e "Nokia N9", "Sony" \u003d\u003e "Sony Xperia Z3"); Foreach ($ teléfonos como $ clave \u003d\u003e $ valor) echo "$ key \u003d\u003e $ valor
"; ?>

Aquí, al cruzar los elementos del ciclo en la variable de clave $, la clave de elemento se transmitirá y su valor en la variable de valor $ $.

Alternativa al ciclo de foreach representa el uso de la lista y cada funciones:

"iPhone5", "Samsumg" \u003d\u003e "Samsung Galaxy III", "Nokia" \u003d\u003e "Nokia N9", "Sony" \u003d\u003e "Sony Xperia Z3"); MIENTRAS (LISTA (CLAVE DE TECLA, $ \u200b\u200b$) \u003d CADA ($ THONES)) ECHO "$ KEY \u003d\u003e $ Valor
"; ?>

El ciclo mientras que funcionará hasta que cada función devuelva el valor de FALSO. Cada función pasa a través de todos los elementos de la matriz de $ teléfonos y la recibe en forma de una matriz que incluye la clave y el valor del elemento. Luego, esta matriz se transmite a la función de lista y los ingresos asigna los valores de la matriz de variables dentro de los soportes. Cuando la función termina la fuerza bruta de una matriz de $ teléfonos, devolverá FALSO, y se completará la acción del ciclo mientras se completará.

Arreglos multidimensionales

En los ejemplos anteriores, solo se consideraron matrices unidimensionales, donde los valores de los elementos estaban representados por números, líneas. Pero en PHP, las matrices también pueden ser multidimensionales, es decir, como el elemento de la matriz en sí es una matriz. Por ejemplo, cree una matriz multidimensional:

Array ("iPhone5", "iPhone5s", "iPhone6"), "Samsumg" \u003d\u003e Array ("Samsung Galaxy III", "Samsung Galaxy Ace II"), "Nokia" \u003d\u003e Array ("Nokia N9", "Nokia Lumia 930 ")," Sony "\u003d\u003e Array (" Sony Xperia Z3 "," Xperia Z3 Dual "," Xperia T2 Ultra "); Foreach ($ Thones como $ marca \u003d\u003e $ artículos) (Echo "

$ marca

"; Eco"
    "; Foreach ($ artículos como $ clave \u003d\u003e $ valor) (Echo"
  • $ valor
  • ";) Eco"
"; } ?>

Y al retirarse, obtendremos 4 LISTA:

Para referirse al elemento de esto, también necesita especificar las teclas en corchetes. Por ejemplo, consulte el primer elemento en la primera matriz. Dado que la clave de la primera matriz es "Apple", y la clave del primer elemento en la primera matriz es el número 0 (ya que nos indicamos explícitamente las teclas):

Echo $ Thones [Apple];

De manera similar, puede obtener el segundo elemento de la tercera matriz:

Echo $ Thones ["Nokia"];

Supongamos que las matrices anidadas también representan matrices asociativas:

Array ("Apple" \u003d\u003e "iPhone5", "Samsumg" \u003d\u003e "Samsung Galaxy III", "Nokia" \u003d\u003e "Nokia n9"), "Tablets" \u003d\u003e Array ("Lenovo" \u003d\u003e "Lenovo Ideatab A3500" "Samsung" \u003d\u003e "Samsung Galaxy Tab 4", "Apple" \u003d\u003e "Apple iPad Air")); Foreach ($ técnicos como $ tovar \u003d\u003e $ artículos) (Echo "

$ TIVAR.

"; Eco"
    "; Foreach ($ artículos como $ clave \u003d\u003e $ valor) (Echo"
  • Tecla $: $ valor
  • ";) Eco"
";) // Asignar un valor diferente de $ técnicos [" teléfonos "] [" Nokia "] \u003d" Nokia lumnia 930 "; // Retirar este valor de Echo $ Technics [" Telefonos "] [" Nokia "]; \u003e