Convertir matriz php a Javascript
¿Cómo puedo convertir una matriz PHP en un formato como este?
Array
(
[0] => 001-1234567
[1] => 1234567
[2] => 12345678
[3] => 12345678
[4] => 12345678
[5] => AP1W3242
[6] => AP7X1234
[7] => AS1234
[8] => MH9Z2324
[9] => MX1234
[10] => TN1A3242
[11] => ZZ1234
)
a una matriz de Javascript en el formato siguiente?
var cities = [
"Aberdeen",
"Ada",
"Adamsville",
"Addyston",
"Adelphi",
"Adena",
"Adrian",
"Akron",
"Albany"
];
Voy a suponer que las dos matrices que has proporcionado para PHP y JS no están relacionadas y son sólo ejemplos de cómo se ven las matrices en los dos lenguajes. Claramente no podrás convertir esas secuencias de letras y números en los nombres de esas ciudades.
PHP proporciona una función para convertir matrices PHP en código Javascript: json_encode()
. (técnicamente, es formato JSON; JSON significa notación de objetos JavaScript)
Úselo así:
<script type='text/javascript'>
<?php
$php_array = array('abc','def','ghi');
$js_array = json_encode($php_array);
echo "var javascript_array = ". $js_array . ";\n";
?>
</script>
Consulte también la página del manual que vinculé arriba para obtener más información.
Tenga en cuenta que json_encode()
solo está disponible en PHP 5.2 y versiones posteriores, por lo que si está usando una versión anterior, deberá usar una existente ; la página del manual de PHP también incluye comentarios con funciones escritas por personas que lo necesitaban. (pero dicho esto, si estás usando algo anterior a PHP 5.2 debes actualizar lo antes posible)
Tonto y simple:
var js_array = [<?php echo '"'.implode('","', $php_array).'"' ?>];
No es necesario llamar a parseJSON ya que el resultado json_encode
es un literal de JavaScript. Simplemente asígnelo a una variable js.
<script type="text/javascript">
//Assign php generated json to JavaScript variable
var tempArray = <?php echo json_encode($php_array); ?>;
//You will be able to access the properties as
alert(tempArray[0].Key);
</script>
puedes convertir matrices php a javascript usando json_encode
la función de php
<?php $phpArray = array( 0 => 001-1234567, 1 => 1234567, 2 => 12345678, 3 => 12345678, 4 => 12345678, 5 => 'AP1W3242', 6 => 'AP7X1234', 7 => 'AS1234', 8 => 'MH9Z2324', 9 => 'MX1234', 10 => 'TN1A3242', 11 => 'ZZ1234' ) ?>
<script type="text/javascript">
var jArray= <?php echo json_encode($phpArray ); ?>;
for(var i=0;i<12;i++){
alert(jArray[i]);
}
</script>
Creo que la forma más rápida y sencilla de trabajar con una matriz PHP en Javascript es hacer esto:
PHP:
$php_arr = array('a','b','c','d');
JavaScript:
//this gives me a JSON object
js_arr = '<?php echo JSON_encode($php_arr);?>';
//Depending on what I use it for I sometimes parse the json so I can work with a straight forward array:
js_arr = JSON.parse('<?php echo JSON_encode($php_arr);?>');