Arrays en PHP

Estoy programando en PHP, bajo Linux, un array de datos, pero no logro aclararme. A ver si tú puedes echarme una mano.
Este es el array que he definido:
$dictionnary = array(
"Word1" => array("French"=>"le mot 1","English"=>"The word 1"),
"Word2" => array("French"=>"le mot 2","English"=>"The word 2")
)
Trato de consultar los valores del array mediante la siguiente función en PHP:
function foo($word, $lang) {
return $dictionnary[$word][$lang];
}
, pero esta función no me devuelve ningún resultado ... :(
¿En qué me estoy equivocando?
¿Estoy utilizando correctamente estos arrays?
Gracias

1 respuesta

Respuesta
1
Arrays en PHP:
El siguiente código en PHP logra los objetivos que persigues, así que fíjate bien en cómo está programado:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#!/usr/local/bin/php -q
<?
$dictionnary = array(
"Word1" => array("French"=>"le mot 1","English"=>"The word 1"),
"Word2" => array("French"=>"le mot 2","English"=>"The word 2")
);
function foo($word, $lang) {
global $dictionnary;
return $dictionnary[$word][$lang];
}
print ("Word1, French => " . foo("Word1", "French") . "\n");
print ("Word1, English => " . foo("Word1", "English") . "\n");
print ("Word2, French => " . foo("Word2", "French") . "\n");
print ("Word2, English => " . foo("Word2", "English") . "\n");
?>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
El resultado obtenido es:
Word1, French => le mot 1
Word1, English => The word 1
Word2, French => le mot 2
Word2, English => The word 2
Si te has fijado en las diferencias entre este código y el tuyo, verás que sólo hay dos:
1.- Debes declarar el array $dictionnary como GLOBAL, para que no esté fuera de su zona de definición.
2.- La declaración del array, debes terminarla en ";"
En PHP, las variables globales no son accesibles directamente desde rutinas dentro de funciones, salvo que las declaremos como globales al inicio de dicha función. Es algo que debes recordar siempre que utilices funciones y variables globales con PHP.
Por lo demás, está todo perfecto. El uso que haces de las tablas hash (arrays con índices de tipo cadena) es correcto, aunque para un uso extendivo de este tipo de datos, te recomendaría una base de datos como MySQL, por motivos de rendimiento.
Las tablas hash son una herramienta de muy alto nivel que hace la vida más fácil al programador, y que vienen implementadas de forma natural en lenguajes como Perl o PHP en Linux desde hace tiempo. Se llaman tablas hash, porque utilizan un índice de cadena, que mediante una función hash, es convertido en un dígito unívoco, logrando así su correcta indexación.
Suerte con tu programa!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas