将多维PHP数组传递给javascript

时间:2011-08-12 13:27:03

标签: php javascript

我有一个类似于:

的数组($ my_array)
array(2) {
[25]=>int(10)
[30]=>int(8)
}

我想将它分配给一个javascript数组,但是我很难做到这一点。有什么建议吗?

编辑:起初,我以为我可以像字符串一样分配它,但这不起作用:

var photo_limit = $my_array;

我还尝试将var_dump写入我的js值。

我目前正在尝试使用以下内容:

for($i=0;$i<count($my_array); $i++){
echo "a[$i]='".$a[$i]."';\n";
}

感谢。

2 个答案:

答案 0 :(得分:10)

最好的方法是使用json_encode。见json_encode reference

像这样使用:

<script>
var array = <?php echo json_encode($array)?>;
</script>

注意,hovewer,您将收到Javascript对象,而不是数组。一目了然,唯一的区别是如果你的数组中有字符串键,你就可以在JS中使用array.*string key*访问它们,即使用点表示法。

答案 1 :(得分:0)

1:json_encode您的PHP数组。

2:使用eval解码JavaScript中的JSON字符串(替代方法:jQuery.parseJSON

<script>
    var arr = eval('(<?php echo json_encode($thePhpArray); ?>)');
</script>