Convertir matriz php a Javascript

Resuelto user663878 asked hace 54 años • 19 respuestas

¿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"
];
user663878 avatar Jan 01 '70 08:01 user663878
Aceptado

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)

Spudley avatar Apr 11 '2011 09:04 Spudley

Tonto y simple:

var js_array = [<?php echo '"'.implode('","', $php_array).'"' ?>];
Eric avatar Oct 12 '2012 16:10 Eric

No es necesario llamar a parseJSON ya que el resultado json_encodees 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>
Jaykishan avatar Dec 08 '2013 07:12 Jaykishan

puedes convertir matrices php a javascript usando json_encodela 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>
Dipesh KC avatar Apr 11 '2011 09:04 Dipesh KC

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);?>');
user3065931 avatar Sep 08 '2014 13:09 user3065931