如何将多维传递给javascript并在多维中再次存储

How passing multi dimensional to javascript and store again in multi dimensional?

本文关键字:存储 javascript      更新时间:2023-09-26

>我在 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 编码的数据中包含单引号以断开字符串,则可能会遇到问题。您可能希望考虑使用 addslashes 或类似的东西转义 $all 变量。

这只是一个基本的答案,可能还有更理想的答案。