Javascript 将PHP中的2D数组转换为JS

Javascript 将PHP中的2D数组转换为JS,javascript,php,arrays,initialization,Javascript,Php,Arrays,Initialization,假设我在PHP中有如下2D数组: <?php $db = array( "1" => array( "1" => "aaa", "2" => "bbb", "3" => "ccc" ), "2" => array( "1" => "ddd", "2" => "eee" ), "3" => array(

假设我在PHP中有如下2D数组:

<?php
$db = array(
    "1" => array(
         "1" => "aaa",
         "2" => "bbb",
         "3" => "ccc"
    ),
    "2" => array(
         "1" => "ddd",
         "2" => "eee"
    ),
    "3" => array(
         "1" => "fff",
         "2" => "ggg",
         "3" => "hhh"
    )
);
?>

位JS中数组的初始化很难看,有没有更好的方法像PHP一样初始化它?

JS也可以在一行中初始化数组:

var db = [["aaa", "bbb", "ccc"], ["ddd", "eee", "fff"], ["ggg", "hhh", "iii"]]
实际上很少看到
newarray()
符号(在读到您的问题之前,我已经忘记了它)

好处:这种声明数组的方法在php中也是正确的

$db = [["aaa", "bbb", "ccc"], ["ddd", "eee", "fff"], ["ggg", "hhh", "iii"]];

您可以对数组进行
json\u编码

php

$db = array(
"1" => array(
     "1" => "aaa",
     "2" => "bbb",
     "3" => "ccc"
),
"2" => array(
     "1" => "ddd",
     "2" => "eee"
),
"3" => array(
     "1" => "fff",
     "2" => "ggg",
     "3" => "hhh"
)
);
echo json_encode($db);
输出

 {"1":{"1":"aaa","2":"bbb","3":"ccc"},"2":{"1":"ddd","2":"eee"},
 "3": {"1":"fff","2":"ggg","3":"hhh"}}
 var arr = {"1":{"1":"aaa","2":"bbb","3":"ccc"},"2":{"1":"ddd","2":"eee"},
 "3": {"1":"fff","2":"ggg","3":"hhh"}};
Javascript

 {"1":{"1":"aaa","2":"bbb","3":"ccc"},"2":{"1":"ddd","2":"eee"},
 "3": {"1":"fff","2":"ggg","3":"hhh"}}
 var arr = {"1":{"1":"aaa","2":"bbb","3":"ccc"},"2":{"1":"ddd","2":"eee"},
 "3": {"1":"fff","2":"ggg","3":"hhh"}};
访问某些索引的输出

 arr[1][1] = aaa
 arr[1][3] = ccc
 arr[2][2] = eee

您的PHP数组看起来像是一个关联数组的关联数组:这是一个很好的方法,可以让命名键指向您的值

在JS中,数组从零开始进行数字索引,用于命名关联键=>值对的数据类型是JS对象

这里有两种方法。示例#1使用数组语法,前提是不需要显式命名索引值。示例#2演示了如何使用JS对象,以防需要用字符串命名键

var example1 = [
    ['aaa', 'bbb', 'ccc'],
    ['ddd', 'eee'],
    ['fff', 'ggg', 'hhh']
];


var example2 = {
    "1": {
        "1": "aaa",
        "2": "bbb",
        "3": "ccc"
    },            
    "2": {
        "1": "ddd",
        "2": "eee"
    },
    "3": {
        "1": "fff",
        "2": "ggg",
        "3": "hhh"
    }
};

如果您想在JS脚本上使用PHP数组,可以在PHP上声明它

<?php 
  $db = array(
  "1" => array(
      "1" => "aaa",
      "2" => "bbb",
      "3" => "ccc"
  ),
  "2" => array(
      "1" => "ddd",
      "2" => "eee"
  ),
  "3" => array(
      "1" => "fff",
      "2" => "ggg",
      "3" => "hhh"
  )
); 
?>

然后在JS数组声明中“回显”它

<script>
    var myJsObject = <?= json_encode($db) ?>; 
</script>

var myJsObject=;
否则,如果您的问题是关于编码syle

<script> 
 var myJsObject = { 
              "1" : { 
                  "1" : "aaa", 
                  "2": "bbb", 
                  "3" : "ccc"
              }, 
              "2" : { 
                  "1" : "dd", 
                  "2": "ee"
               }
             }; 
</script>

var myJsObject={
"1" : { 
“1”:“aaa”,
“2”:“bbb”,
“3”:“ccc”
}, 
"2" : { 
“1”:“dd”,
“2”:“ee”
}
}; 

请注意,如果用JS表示,PHP关联数组是对象,而不是数组。您也可以以数组的形式访问它们。

如果您在PHP中有它,并且希望将其转换(或传输)为Javascript,则可以使用和。