-1

我在 php 中有一个二维数组,我需要将其表示为 javascript 变量或对象。我已经研究过 json 对其进行编码和解码以用作 javascript 对象,这没有意义,因为我想循环通过我的 javascript 转换。将 php 数组表示为 javascript 二维数组也没有任何意义,因为 javascript 中的多维数组非常复杂。做这样的事情的标准方法是什么?正如我所说,我需要能够遍历结果。PHP 数组在第一个维度中包含一个数字,在第二个维度中包含一个页面名称。我正在尝试找到一种有效的方法来将 ID 分配给与每个页面名称关联的复选框。如果复选框已被选中,我希望能够遍历一个 javascript 变量并检查每个 id。

4

2 回答 2

4

JSON 是执行此操作的完美方式。Javascript Object Notation是简单的 Javascript 语法,用于表达任意值、对象或其他。它们非常适合将 PHP 值传输到 Javascript:

<?php $arr = array('foo', 'bar', 'baz', 42); ?>
<script type="text/javascript">
    var arr = <?php echo json_encode($arr); ?>;
</script>

这相当于您输入:

<script type="text/javascript">
    var arr = ["foo", "bar", "baz", 42];
</script>

json_encode为您提供了一个完美的 Javascript 数组,您可以通过它循环或执行您通常使用 Javascript 数组执行的任何操作。您只需要构建所需的数组/对象/值。

您可能需要注意的是,连续数字索引的数组会生成 JSON 数组,但其他任何内容都会生成 JSON 对象。例如:

array('foo', 'bar')              -> ["foo", "bar"]
array(0 => 'foo', 1 => 'bar')    -> ["foo", "bar"]
array(1 => 'foo', 0 => 'bar')    -> { "1" : "foo", "0" : "bar" }
于 2012-11-25T21:01:13.833 回答
0

您必须使用for..in循环来遍历对象属性。例如:

var obj = {
    "foo" : "bar",
    "baz" : [10, 20, 30]
};

for(var key in obj) {
    console.log(key); // current key
    console.log(obj[key]); // current value
}
于 2012-11-26T12:12:30.500 回答