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.