Cette solution que vous avez publiée :
<script>
var jsonarray = <?php echo json_encode($array); ?>;
// now you can use jsonarray in your javascript
</script>
C'est en fait une très bonne approche. L'utilisation d'AJAX est considérablement plus lente (à cause de la latence du réseau).
À moins que vous n'ayez vraiment besoin d'AJAX pour une raison quelconque, vous devriez éviter de l'utiliser. Cela ajoutera une fraction de seconde notable de temps de chargement à la page, souvent sans aucun avantage.
Avant tout, lors de la structuration de votre page, vous souhaitez essayer de réduire le nombre de requêtes réseau individuelles entre le navigateur et le serveur. Moins il y aura de requêtes, plus votre page sera rapide. Cela est particulièrement vrai pour javascript et ajax, car ils sont imprévisibles et les navigateurs ont beaucoup de mal à optimiser n'importe quelle partie de la page où il est utilisé.
On parle d'un quart de seconde contre un millionième de seconde, pour exactement le même résultat final.