2010-05-12 5 views
3

J'ai un tableau PHP que je veux utiliser dans mon code JavaScript. Je préférerais ne pas faire quelque chose comme <?PHP $array['array2name'][0]?> pour tous les éléments qui s'y trouvent, car leur nombre est inconnu. J'allais faire un peu de boucle pour écrire certaines des données dans les éléments mais je n'arrive pas à trouver un moyen facile de le faire actuellement.La meilleure façon de passer un tableau 2D en JavaScript à partir de PHP?

Comment passer un tableau 2d de PHP à JavaScript de la manière la plus simple possible?

+2

Beaucoup de doublons que je peux voir dans la colonne de droite. Par exemple. http://stackoverflow.com/questions/2421875/write-to-javascript-array-within-php-loop (adresse le même problème) –

+0

duplication possible de [Meilleure façon de transférer un tableau entre PHP et Javascript] (http: //stackoverflow.com/questions/393479/best-way-to-transfer-an-array-between-php-and-javascript) –

Répondre

12

En tant qu'objet JSON utilisant la fonction json_encode. Vous pouvez alors lire ceci facilement avec Javascript car c'est un objet javascript natif. http://php.net/manual/en/function.json-encode.php

json_encode($array); 

JSON est facilement analysable dans JQuery, mais pour JavaScript pur voir ici:

http://www.json.org/js.html

+0

Un problème avec ceci est que vous avez perdu l'ordre de votre tableau lors de l'analyse de la chaîne en objet JSON du côté javascript. par exemple. tableau avec la clé comme 0 0.5 1 sera modifié à 0 1 0.5 par javascript. Ce comportement varie selon le navigateur. –

0

méthode Lazy:

<script> 
var arr = []; 

<?php 
    $phparray = array(array(1, 2, 3), array(4, 5, 6)); 

    foreach ($phparray as $i) { 
     echo 'arr.push([' . implode(', ', $i) . ']);'; 
    } 
?> 

</script> 

Ce n'est pas la "meilleure" méthode , mais bon ça marche.

Questions connexes