Un array o matriz en español es una estructura de datos que almacena uno o más valores relacionados entre sí en una sola variable. Por ejemplo, si desea almacenar las calificaciones de 10 alumnos de una clase, en lugar de definir 10 variables diferentes, es fácil definir un array de 10 valores.

Las matrices en PHP se comportan de forma un poco diferente a las matrices en C, ya que PHP es un lenguaje tipado dinámicamente a diferencia de C que es un lenguaje tipado estáticamente.

¿Cómo definir un array en PHP?

En PHP, hay dos formas de definir una matriz: primero usando la función array() y segundo usando los corchetes.

La función array()

La función array() integrada utiliza los parámetros que se le asignan y devuelve un objeto de tipo array. Uno o más parámetros, separados por comas, son los elementos del array.

array(mixed...$values):array

Cada valor entre paréntesis puede ser un valor singular (un número, una cadena, cualquier objeto o incluso otra matriz) o un par clave-valor. La asociación entre la clave y su valor se indica con el símbolo «=>».

Ejemplo

Aquí tienes un ejemplo para mostrarte cómo puedes usar la función array() en tus programas:

<?php
   $arr1 = array(10, "asd", 1.55, true);
   $arr2 = array("one"=>1, "two"=>2, "three"=>3);
   $arr3 = array(
      array(10, 20, 30),
      array("Ten", "Twenty", "Thirty"),
      array("physics"=>70, "chemistry"=>80, "maths"=>90)
   );
   print_r($arr3);
?>

Producción

A continuación se muestra el resultado del código anterior:

Array
(
   [0] => Array
      (
         [0] => 10
         [1] => 20
         [2] => 30
      )

   [1] => Array
      (
         [0] => Ten
         [1] => Twenty
         [2] => Thirty
      )

   [2] => Array
      (
         [physics] => 70
         [chemistry] => 80
         [maths] => 90
      )
)

Uso de corchetes [ ]

En lugar de la función array(), los elementos del array, separados por comas, también pueden colocarse entre corchetes para declarar un objeto array. En este caso, los elementos también pueden ser valores singulares, una cadena u otro array.

<?php
   $arr1 = [10, "asd", 1.55, true];
   $arr2 = ["one"=>1, "two"=>2, "three"=>3];
   $arr3 = [ [10, 20, 30],
      ["Ten", "Twenty", "Thirty"],
      ["physics"=>70, "chemistry"=>80, "maths"=>90] ];
?>

Ejemplo

En este ejemplo, arr1 es un array indexado. Sin embargo, var_dump(), que muestra la información estructurada de cualquier objeto, indica que cada valor tiene su índice como clave.

<?php
   $arr1 = [10, "asd", 1.55, true];
   var_dump($arr1);
?>

Producción

Producirá el siguiente resultado:

array(4) {
  [0]=>
  int(10)
  [1]=>
  string(3) "asd"
  [2]=>
  float(1.55)
  [3]=>
  bool(true)
}

Ejemplo

El mismo principio se aplica a una matriz de índice multidimensional, donde cada valor de una matriz es otra matriz.

<?php
   $arr1 = [
      [10, 20, 30], 
      ["Ten", "Twenty", "Thirty"],
      [1.1, 2.2, 3.3]
   ];

   var_dump($arr1);
?>

Producción

Producirá el siguiente resultado:

array(3) {
  [0]=>
  array(3) {
    [0]=>
    int(10)
    [1]=>
    int(20)
    [2]=>
    int(30)
  }
  [1]=>
  array(3) {
    [0]=>
    string(3) "Ten"
    [1]=>
    string(6) "Twenty"
    [2]=>
    string(6) "Thirty"
  }
  [2]=>
  array(3) {
    [0]=>
    float(1.1)
    [1]=>
    float(2.2)
    [2]=>
    float(3.3)
  }
}

Tipos de matrices en PHP

Hay tres tipos diferentes de matrices y a cada valor de la matriz se accede mediante un ID que se denomina índice de la matriz.

  • Matriz indexada: Una matriz que consiste únicamente en una colección de valores se denomina matriz indexada. Cada valor se identifica mediante un índice posicional que empieza por «0». Los valores se almacenan y se accede a ellos de forma lineal.For example -$fruits=[«Apple»,»Banana»,»Orange»];
  • Matriz asociativa: Si la matriz es una colección de pares clave-valor, se denomina matriz asociativa. El componente clave del par puede ser un número o una cadena, mientras que el componente valor puede ser de cualquier tipo. Las matrices asociativas almacenan los valores de los elementos asociados a los valores clave, en lugar de seguir un orden de índice lineal estricto.$marks=[«Ankit»=>85,»Eisha»=>90,»Deepak»=>78];
  • Matriz multidimensional : si cada valor de una matriz indexada o asociativa es una matriz en sí misma, se denomina matriz multidimensional. Se accede a los valores mediante múltiples índices.$students=[[«Ankit»,85,»A»],[«Eisha»,90,»A+»],[«Deepak»,78,»B»]];

NOTA − Las funciones de matriz integradas se proporcionan en la referencia de funciones Funciones de matriz PHP

Cabe señalar que PHP considera internamente cualquiera de los tipos anteriores como un array asociativo. En el caso de un array indexado, donde cada valor tiene un índice, este es su clave. La función var_dump() revela este hecho.

Propiedades de los arrays en PHP

Aquí se muestran algunas propiedades de la matriz:

  • Una matriz en PHP es un mapa ordenado que asocia valores a claves.
  • Una matriz PHP se puede utilizar para implementar diferentes estructuras de datos, como una pila, una cola, una lista (vector), una tabla hash, un diccionario, etc.
  • La parte de valor de un elemento de matriz puede ser de otras matrices. Esto permite implementar estructuras de datos de árbol y matrices multidimensionales.
  • PHP admite tanto matrices indexadas (claves numéricas) como matrices asociativas (claves de cadena).
  • PHP proporciona muchas funciones integradas para la manipulación de matrices, como array_push(), array_pop(), array_merge(), etc.

Hay dos maneras de declarar un array en PHP: una es usar la función integrada array() y la otra es usar una sintaxis más corta donde los elementos del array se colocan entre corchetes.

Acceder a los elementos de la matriz

Para acceder a cualquier elemento de una matriz dada, puede utilizar la sintaxis array[key].

Ejemplo

Para una matriz indexada, coloque el índice dentro del corchete, ya que el índice en sí es de todos modos la clave.

<?php
$arr1 = [10, 20, 30];
$arr2 = array("one"=>1, "two"=>2, "three"=>3);

var_dump($arr1[1]);
var_dump($arr2["two"]);
?>

Producción

Producirá el siguiente resultado:

int(20)
int(2)

Exploraremos los tipos de matrices PHP con más detalles en los capítulos siguientes.