Convertir un arreglo (array) de PHP a JavaScript

php-logo

En el día de ayer me sucedió que estaba utilizando un plugin de WordPress para detectar el país de procedencia de los visitantes de una página y tomar esa información para redireccionar automáticamente al idioma de esa persona. No lo quise hacer utilizando el User Agent del navegador, porque una persona en Francia podría estar utilizando Firefox en inglés. Para mí es más preciso utilizar WP GeoLocation, con el cual puedo saber la ubicación de una persona basado en la dirección ip.
El caso es que formé en PHP un arreglo de los códigos de los países con sus códigos de idiomas pero no me había percatado de que WP GeoLocation me daba la información en JavaScript. Como mi recién formado arreglo de PHP era muy grande, tuve que buscar una forma automatizada para convertir ese arreglo de PHP a JavaScript y esta fue la solución:

<?php
$arreglo = array(
'clave 1' => 'valor 1',
'clave 2' => 'valor 2',
'clave x' => 'valor x',
);
?>

<script language="javascript">
var arr = {

<?php
foreach($arreglo as $key => $values){
$arr .= "'" . $key . "'" .   " : " . "'" . $values . "'" . ",";
}
$arr =  substr_replace($arr, '', -1);
echo $arr;
?>

};
</script>

Como pudimos apreciar en el código anterior, utilizamos un loop foreach para formar el arreglo al estilo javascript y lo almacenamos en una variable. Cuando termine el loop, nos va a sobrar una coma al final del arreglo, la cual eliminamos con el código de la línea 16. Finalmente imprimimos el arreglo en el navegador y salimos de PHP y en javascript cerramos con la llave y el punto y coma y todo listo. Puedes verificar si todo está bien desde JavaScript con alert(arr[clave]);

Leave a Reply

Tu dirección de correo electrónico no será publicada.