Declaración de arrays en PHP
¿Qué es un array?
Un array o arreglo se define como uma colección de variables guardadas bajo un mismo nombre, diferenciadas entre sí por un índice.
En el lenguaje Php podemos encontrar 2 tipos de arrays: secuenciales y asociativos.
Arrays secuenciales o indexados
Los arrays secuenciales son arrays tradicionales compuestos de variables con localizador (índice).
Ver tutorial Arrays indexados y asociativos en PHP
Declaración de arrays indexados
La declaración de un array indexado se puede hacer directamente añadiendo valores
<?php $alumno[] = 3.3; // Equivale a $alumno[0] = 3.3; $alumno[] = 8.6; //Equivale a $alumno[1] = 8.6; $alumno[] = 5.2; //Equivale a $alumno[2] = 5.2; ?>
O bien indicando el índice que corresponderá a cada valor
<?php $alumno[0] = 3.3; $alumno[1] = 8.6; $alumno[2] = 5.2; ?>
Al declarar un nuevo elemento, éste ocupa la siguiente posición.
<?php $alumno[2] = 5.3; $alumno[5] = 8.1; $alumno[] = 7.8; // Equivale a $alumno[6] = 7.8; // Siempre se asigna el entero posterior al último utilizado // (aunque haya sido borrado) ?>
Se pueden declarar también mediante el constructor array()
<?php $precios = array(25, 33, 57); $paises = array("México", "Colombia", "Chile"); ?>
A partir de Php 5.4 es posible declarar arrays indexados mediante corchetes
<?php $precios = [25, 33, 57]; $paises = ["México", "Colombia", "Chile"]; ?>
Arrays asociativos
Los arrays asociativos, en vez de utilizar indices como los indexados, utilizan claves para asociar las variables.
<?php $nuevoArray = array(clave1 => valor1, clave2 => valor2, clave3 => valor3, ...); ?>
Declaración de arrays asociativos
Declaración sencilla de un Array asociativo
<?php $alumno["Carlos"] = 7.3; $alumno["Pedro"] = 4.8; ?>
Mediante el constructor array()
<?php $edades = array("Juan" => 24, "Andrea" => 31); ?>
Mediante corchetes (A partir de Php 5.4)
<?php $edades = ["Juan" => 24, "Andrea" => 31]; ?>
Los Arrays en Php pueden contener claves (String o Integer al mismo tiempo) ya que no distingue entre arrays indexados y asociativos.
Veamos un ejemplo
<?php $nuevoArray = array("fruta" => "manzana", "animal" => "oveja", 100 => 1000, 200 => -200); ?>
Comprobar si es secuencial o asociativo
Podemos utilizar el siguiente código para comprobar si un array es secuencial o asociativo.
<?php function is_assoc($array) { foreach(array_keys($array) as $key) { if (!is_int($key)) return true; } return false; } ?>
La función recorre todas las claves del array y si encuentra alguna que no sea de tipo entero devolverá true, indicando que el array es asociativo.
En caso contrario devolverá false indicando que el array es secuencial.