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