我在 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 经验,谢谢。
最佳答案
json_encode
的输出将是一个字符串而不是一个数组。本质上,您想要做的是将一个字符串分配给一个不带引号的变量,并尝试循环它。 json_encode
不会自动将字符串转换为适合 javascript 的数组。
var all = <?php echo json_encode($all); ?>;
应改为
var all = jQuery.parseJSON('<?php echo json_encode($all); ?>');
但是,如果 json 编码数据中包含单引号来破坏字符串,则可能会遇到问题。您可能想考虑转义 $all
变量为 addslashes
或类似的东西。
这只是一个基本答案,可能还有更理想的答案。
关于javascript - 如何将多维传递给javascript并再次以多维形式存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35545170/