javascript - 如何将多维传递给javascript并再次以多维形式存储?

标签 javascript php arrays

我在 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/

相关文章:

php - 如何在 laravel 5 的 View 中调用 Controller 函数

php - 优化MySQL数据库查询

javascript - 文件上传302?

java - 如果用户输入在 Java 中按时间顺序排列,如何迭代数组

javascript - 在完成 javascript css 后重复动画

javascript - 遍历树结构时如何避免 `shareReplay`

javascript - Meteor JS - 在特定模板上显示 DOM 元素

javascript - 如何使用我的 javascript 函数摆脱周末约会?

JavaScript/jQuery : Array - For In Loop Return Value of Lowest Key

java - 如何检查整个数组?