En PHP, los elementos de un array o matriz pueden ser una colección de pares clave-valor o contener únicamente valores. Si el array solo contiene valores, se denomina array indexado, ya que cada elemento se identifica mediante un índice creciente que empieza por «0».

Creación de una matriz indexada

Una matriz indexada en PHP se puede crear utilizando la función array() o con la sintaxis de corchetes .

$arr1=array("a",10,9.99,true);$arr2=["a",10,9.99,true];

Estructura de una matriz indexada

Cada elemento del array tiene un índice posicional, siendo el primer elemento el índice «0». La función var_dump() revela la información estructurada de estos arrays como:

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

Podemos utilizar el índice para recorrer la matriz, obtener el valor en un índice dado o modificar el valor de un elemento en su lugar.

Recorriendo una matriz indexada en PHP

Se puede usar cualquier tipo de bucle PHP para recorrer un array. Si queremos usar un bucle for o while , debemos encontrar el número de elementos del array con la función count() y usar su valor como condición de prueba para el bucle for o while contado .

Ejemplo

El siguiente código utiliza un bucle for para enumerar todos los elementos de una matriz indexada.

<?php
   $numbers = array(10, 20, 30, 40, 50);

   for ($i=0; $i<count($numbers); $i++){
      echo "numbers[$i] = $numbers[$i] \n";
   }
?>

Producirá el siguiente resultado :

numbers[0] = 10
numbers[1] = 20
numbers[2] = 30
numbers[3] = 40
numbers[4] = 50

También puedes usar un bucle while o do-while para recorrer un array indexado. En este caso, también necesitamos encontrar la longitud del array con la función count().

Ejemplo

El siguiente código recorre la matriz indexada dada en orden inverso:

<?php
   $numbers = array(10, 20, 30, 40, 50);
   $i = count($numbers)-1;
   while ($i>=0){
      echo "numbers[$i] = $numbers[$i] \n";
      $i--;
   }
?>

Producirá el siguiente resultado :

numbers[4] = 50
numbers[3] = 40
numbers[2] = 30
numbers[1] = 20
numbers[0] = 10

Acceder a los elementos de la matriz mediante el índice

Se puede acceder a cualquier valor de una matriz mediante la sintaxis array[índice] . Se puede asignar un nuevo valor al valor de un índice específico. De esta forma, la matriz se modifica en su lugar.

Ejemplo

El siguiente programa obtiene los valores de un array $arr1 y los coloca en $arr2 en orden inverso. De esta manera, el valor en la posición 0 de $arr1 se convierte en el último valor de $arr2.

<?php
   $arr1 = array(10, 20, 30, 40, 50);
   $size = count($arr1);

   for ($i=0; $i<$size; $i++){
      $arr2[$size-$i-1] = $arr1[$i];
   }

   for ($i=0; $i<$size; $i++){
      echo "arr1[$i] = $$arr1[$i] arr2[$i] = $$arr2[$i] \n";
   }
?>

Producirá el siguiente resultado :

arr1[0] = $10 arr2[0] = $50
arr1[1] = $20 arr2[1] = $40
arr1[2] = $30 arr2[2] = $30
arr1[3] = $40 arr2[3] = $20
arr1[4] = $50 arr2[4] = $10

Recorrer una matriz indexada mediante el bucle «foreach»

También puedes usar el bucle foreach para iterar sobre un array indexado. Observa el siguiente ejemplo :

<?php
   $arr1 = [10, 20, 30, 40, 50];
   foreach ($arr1 as $val){
      echo "$val \n";
   } 
?>

Producirá el siguiente resultado :

10 
20 
30 
40 
50

Tenga en cuenta que PHP trata internamente el array indexado como un array asociativo, y el índice se considera la clave. Esto se puede verificar mediante la salida de var_dump() del array.

Ejemplo

Podemos descomprimir cada elemento de una matriz indexada en las variables clave y valor con la sintaxis foreach −

<?php
   $arr1 = [10, 20, 30, 40, 50];
   foreach ($arr1 as $key => $val){
      echo "arr1[$key] = $val \n";
   }
?>

Producirá el siguiente resultado :

arr1[0] = 10
arr1[1] = 20
arr1[2] = 30
arr1[3] = 40
arr1[4] = 50

En PHP, una matriz puede ser una combinación de solo valores y pares clave-valor. PHP asigna el índice solo a los valores sin claves.

Ejemplo

En este ejemplo, PHP asigna un índice incremental a los números, omitiendo el par clave-valor que aparece en él.

<?php
   $arr1 = [10, 20, 
         "vals" => ["ten", "twenty"],
         30, 40, 50];

   var_dump($arr1);
?>

Producirá el siguiente resultado :

array(6) {
  [0]=>
  int(10)
  [1]=>
  int(20)
  ["vals"]=>
  array(2) {
    [0]=>
    string(3) "ten"
    [1]=>
    string(6) "twenty"
  }
  [2]=>
  int(30)
  [3]=>
  int(40)
  [4]=>
  int(50)
}

Propiedades de las matrices indexadas

A continuación se enumeran algunas de las propiedades de las matrices indexadas:

  • El elemento inicial tiene un índice de cero y crece secuencialmente.
  • Una matriz indexada puede almacenar una amplia gama de valores, como textos, números, flotantes y booleanos.
  • Las matrices en PHP pueden crecer y disminuir dinámicamente sin ser declaradas explícitamente.
  • Las matrices indexadas se pueden recorrer fácilmente mediante bucles for o foreach.
  • PHP tiene varias funciones integradas para administrar matrices indexadas, como count($arr), array_push($arr, «Value») y array_pop($arr).