我在PHP中有多维数组的变量:
$all = array(2) {
[0]=> array(2) {
[0]=> string(1) "1"
[1]=> string(1) "a"
}
[1]=> array(2) {
[0]=> string(1) "2"
[1]=> string(1) "b"
}
}
我尝试传递给javascript然后再次存储在数组中以便再次循环
在javascript中尝试存储到新数组(多维)
喜欢这个window.a = new array (['1','a'],['2','b']);
var all = jQuery.parseJSON('<?php echo json_encode($all); ?>');
window.a = new array();
for(i=0; i< all.length; i++)
{
window.a.push([all[i][0],all[i][1]]);
}
这样做的正确方法是什么?
对不起javascript javascript经验感谢。
答案 0 :(得分:1)
json_encode
的输出将是一个字符串而不是一个数组。基本上你要做的就是将一个字符串分配给一个没有引号的变量并尝试循环它。 json_encode
并不会自动将字符串转换为适合javascript的数组。
var all = <?php echo json_encode($all); ?>;
应改为
var all = jQuery.parseJSON('<?php echo json_encode($all); ?>');
但是,如果json编码数据中有单引号来破坏字符串,则可能会出现问题。您可能希望查看使用$all
或类似内容转义addslashes
变量。
这只是一个基本答案,可能有更理想的答案。