Arreglos en PHP


  Vectores o arreglos unidimensionales

Un vector o arreglo unidimensional, almacena varios valores en una sola variable:

Ejemplo 1

  <?php
    $cars = array("Volvo", "BMW", "Toyota");
    echo "Me gustan los " . $cars[0] . ", " . $cars[1] . 
    " y " . $cars[2] . ".";
  ?> 

  ¿Qué es un Array?

Un vector o arreglo unidimensional, es una variable especial, que puede contener más de un valor a la vez.

Si tiene una lista de elementos (una lista de nombres de automóviles, por ejemplo), almacenar los automóviles en variables individuales podría verse así:

Sintaxis

  $cars1 = "Volvo";
  $cars2 = "BMW";
  $cars3 = "Toyota"; 

Sin embargo, ¿qué pasa si quieres recorrer los autos y encontrar uno específico? ¿Y si no tuvieras 3 coches, sino 300?

¡La solución es crear una matriz!

Una matriz puede contener muchos valores bajo un solo nombre, y puede acceder a los valores haciendo referencia a un número de índice.

  Crear una matriz en PHP

En PHP, la función se utiliza para crear un vector o array ( ):

Sintaxis

  array();  

Tipos de vectores

🟡Indexados
🟡Asociativos:
🟡Multidimensionales

  Función Count ( )

La función count ( ) se utiliza para devolver la longitud (el número de elementos) de una arreglo:

Ejemplo 2

  <?php
    $cars = array("Volvo", "BMW", "Toyota");
    echo count($cars);
  ?>       

Quiero intentarlo


  Arreglos indexados

Hay dos formas de crear matrices indexadas:

El índice se puede asignar automáticamente (índice siempre comienza en 0), así:

  $cars = array("Volvo", "BMW", "Toyota"); 

o el índice se puede asignar manualmente:

  $cars[0] = "Volvo";
  $cars[1] = "BMW";
  $cars[2] = "Toyota"; 

En el ejemplo siguiente se crea una matriz indizada denominada $cars, se asignan tres y, a continuación, imprime un texto que contiene los valores de la matriz:

Ejemplo 3

  <?php
    $cars = array("Volvo", "BMW", "Toyota");
    echo "Me gustan los " . $cars[0] . ", " . $cars[1] . 
    " y " . $cars[2] . ".";
  ?> 

Quiero intentarlo


  Recorrer un arreglo indexado

Para recorrer e imprimir todos los valores de una matriz indexada, puede usar un bucle, como este: for

Ejemplo 4

  <?php
    $cars = array("Volvo", "BMW", "Toyota");
    $arrlength = count($cars);
          
    for($x = 0; $x < $arrlength; $x++) {
      echo $cars[$x];
      echo "<br>";
    }
  ?>        

Quiero intentarlo


  Arreglos asociativos

Las matrices asociativas son matrices que utilizan claves con nombre que se les asignan.

Hay dos formas de crear una matriz asociativa:

  $age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43"); 

O es lo mismo que:

  $age['Peter'] = "35";
  $age['Ben'] = "37";
  $age['Joe'] = "43"; 

Las claves con nombre se pueden usar en un script:

Ejemplo 5

  <?php
    $age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
    echo "Peter is " . $age['Peter'] . " years old.";
  ?> 

Quiero intentarlo


  Recorrer un arreglo asociativo

Para recorrer e imprimir todos los valores de una matriz asociativa, puede usar un bucle, como este foreach:

Ejemplo 6

  <?php
    $age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
          
    foreach($age as $x => $x_value) {
      echo "Llave=" . $x . ", Valor=" . $x_value;
      echo "<br>";
    }
  ?>        

Quiero intentarlo


  Matrices Multidimensionales

Una matriz multidimensional es una matriz que contiene una o más matrices.

PHP admite matrices multidimensionales que son dos, tres, cuatro, cinco o Más niveles de profundidad. Sin embargo, las matrices de más de tres niveles de profundidad son difíciles de administrar para la mayoría de las personas.

La dimensión de una matriz indica el número de índices que necesita para seleccionar un elemento.

🟡 Para una matriz bidimensional, necesita dos índices para seleccionar un elemento
🟡 Para una matriz tridimensional se necesitan tres índices para seleccionar un elemento


  Arreglos bidimensionales o matriz

Una matriz bidimensional es una matriz de matrices (una matriz tridimensional es una matriz de matrices de matrices).

Podemos almacenar los datos de la tabla anterior en una matriz bidimensional, como esta:

  $cars = array (
      array("Volvo",22,18),
      array("BMW",15,13),
      array("Saab",5,2),
      array("Land Rover",17,15)
  ); 

Ahora la matriz $cars bidimensional contiene cuatro matrices y tiene dos índices: fila y columna.

Para obtener acceso a los elementos de la matriz $cars debemos apuntar a los dos Índices (fila y columna):

Ejemplo 7

  <?php
    echo $cars[0][0].": En stock: ".$cars[0][1].", vendidos: ".$cars[0][2].".<br>";
    echo $cars[1][0].": En stock: ".$cars[1][1].", vendidos: ".$cars[1][2].".<br>";
    echo $cars[2][0].": En stock: ".$cars[2][1].", vendidos: ".$cars[2][2].".<br>";
    echo $cars[3][0].": En stock: ".$cars[3][1].", vendidos: ".$cars[3][2].".<br>";
  ?> 

Quiero intentarlo

También podemos poner un bucle for dentro de otro bucle for, para obtener los elementos de la matriz $cars (todavía tenemos que señalar los dos índices):

Ejemplo 8

  <?php
    for ($row = 0; $row < 4; $row++) {
      echo "<p> <b>Row number $row</b></p>";
      echo "<ul>";
      for ($col = 0; $col < 3; $col++) {
        echo "<li>".$cars[$row][$col]."</li>";
      }
      echo "</ul>";
    }
  ?>        

Quiero intentarlo