想象一下,我在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,是的,我可以做类似的事情:
var db = new Array(3);
db[1][1] = "aaa";
db[1][2] = "bbb";
db[1][3] = "ccc";
db[2][1] = "ddd";
db[2][2] = "eee";
db[3][1] = "fff";
db[3][2] = "ggg";
db[3][3] = "hhh";
在JS中初始化数组很丑陋,有没有像在PHP中那样更好的初始化方法?
答案 0 :(得分:1)
js还可以在一行中初始化数组:
var db = [["aaa", "bbb", "ccc"], ["ddd", "eee", "fff"], ["ggg", "hhh", "iii"]]
实际上很少见到new Array()
符号(我在读到您的问题之前就已经忘记了它)
奖金:这种在php中声明数组的方法也是正确的
$db = [["aaa", "bbb", "ccc"], ["ddd", "eee", "fff"], ["ggg", "hhh", "iii"]];
答案 1 :(得分:0)
您可以json_encode
数组
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"}}
JavaScript
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
答案 2 :(得分:0)
您的PHP数组看起来像是一个关联数组的关联数组:拥有指向您的值的命名键的好方法。
在JS中,数组从零开始以数字索引,用于命名关联键=>值对的数据类型是JS对象。
这是两种方法。如果不需要显式命名索引值,则示例1使用数组语法。 Example#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"
}
};
答案 3 :(得分:0)
如果要在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>
否则,如果您的问题是关于编码符号
<script>
var myJsObject = {
"1" : {
"1" : "aaa",
"2": "bbb",
"3" : "ccc"
},
"2" : {
"1" : "dd",
"2": "ee"
}
};
</script>
请注意,如果用JS而不是数组表示,则PHP关联数组是对象。您也可以将它们作为数组访问。