23 Nov

Como usar arrays asociativos en php

En PHP disponemos variables de tipo “array asociativo”, que permiten almacenar conjuntos de pares (clave, valor). La funcionalidad que proporcionan estas variables equivalente a la que en Perl tienen las variables “hash”, y a la que en Java tienen las variables “Hashtable”.

En este artículo vamos a explicar la manera de trabajar en PHP con arrays asociativos: inicializar el array con una lista de pares de valores, añadir y eliminar entradas del array, recorrer todos los elementos del array, etc.

Definir e inicializar un array

Podemos inicializar un array con la siguiente sintaxis:

<?php
$capitales = array(
    ‘Reino Unido’ => ‘Londres’,
    ‘Peru’ => ‘Lima’,
    ‘Francia’ => ‘Paris’,
    ‘Portugal’ => ‘Lisboa'
);
?>

y a partir de PHP 5.4, podemos utilizar alternativamente la sintaxis:

<?php
$capitales = [
    ‘Reino Unido’ => ‘Londres’,
    ‘Peru’ => ‘Lima’,
    ‘Francia’ => ‘Paris’,
    ‘Portugal’ => ‘Lisboa’,
];
?>

Leer y añadir entradas a un array

Para obtener el valor de una entrada del array a partir de su clave, utilizamos la sintaxis:


$valor = $capitales[‘Portugal’];
y para asignar un valor a una clave:
$capitales[‘Argentina’] = ‘Buenos Aires’;


Si la clave a la que se asigna un valor existía previamente, su valor se sustituye por el nuevo. Si la clave no existía, se crea una nueva entrada en el array.

Para saber si existe una entrada en el array para una determinada clave, utilizamos la función array_key_exists(clave, array):

if (array_key_exists('Colombia', $capitales) {
    print “La capital de Colombia es: ” . $capitales[‘Colombia’] . “n”;
}


Eliminar entradas de un array

Para eliminar de un array una clave y su valor, se utiliza la función ‘unset’:

unset( $capitales['Argentina'] );

Recorrer todos los pares (clave, valor) de un array

Para esto, existe en PHP el operador de control ‘foreach’:
foreach( $capitales as $pais => $capital) {
    echo "Pais: " . $pais . ", Capital: " . $capital . "n";
}

Si no estamos interesados en las claves, podemos obtener simplemente los valores:

foreach ( $capitales as $capital) {
    echo "Capital: " . $capital . "n";
}


Si queremos recorrer el array de manera ordenada, debemos utilizar primero la función ‘ksort’:



ksort($capitales);
foreach( $capitales as $pais => $capital) {
    echo "Pais: " . $pais . ", Capital: " . $capital . "n";
}

Obtener el número de entradas existentes en un array
En PHP, utilizamos la funcion count() o sizeof() para obtener el número de entradas en un array. sizeof() es simplemente un alias de count(). Algunos programadores prefieren utilizar count() para evitar la ambiguedad del término ‘sizeof’, que en otros lenguages tiene otro significado (por ejemplo, el tamaño del objeto en bytes):


$num_entradas = count($capitales);
Share this

Leave a reply