1

在我的PHP脚本中,我有一个多维和关联数组,我想将其“转换”为一个javascript数组。该阵列看起来像这样在PHP:如何在JavaScript中创建多维和关联数组?

<?php 
    $myArray = array(
     array("value" => 1, "label" => "First"), 
     array("value" => 2, "label" => "Second") 
    ) 
?> 

,现在我想创建一个数组在javascript等效的阵列,通过一个foreach循环。事情是这样的:

<script> 
    var myArrayInJS = new Array(); 
     <? foreach($myArray as $innerArray): ?> 
      // What do I write here? 
     <? endforeach; ?> 
</script> 
+0

可能重复http://stackoverflow.com/questions/4329092/multi-dimensional-associative-arrays-in-javascript – 2012-03-02 15:44:27

回答

7

你可以使用

var myArrayInJs = <?php echo json_encode($myArray); ?>; 
+0

太棒了!没有乱七八糟的foreach循环...但我很好奇,JavaScript看到json-notation和array-notation之间没有区别吗?一样? – Weblurk 2012-03-02 15:48:40

+1

@FoadFarkhondeh JSON是如何在Javascript中创建数组和对象的推荐方法。 – duri 2012-03-02 15:55:14

-1

的JavaScript多维数组(或对象)有以下符号:

var multi = { "key1" : "val1" , "key2" : "val2" }

而且你访问(并分配)他们喜欢obj.key

alert(multi.key1) //这会提醒'val1'。

既然看起来你已经知道了PHP方面,我会让你离开这里。

希望这会有所帮助。

+0

这实际上是一维数组.. – Stranger 2015-08-21 09:05:11

0

我会建议你不要把PHP放入Javascript中。如果你改变你的PHP变量或者移动你的模板,它可能会搞砸了。

只需为它创建一个Ajax请求,将其作为JSON返回,那么您不需要开始构建复杂的数组。你只会有一个很好的整洁对象

+0

好点,谢谢。 – Weblurk 2012-03-02 15:51:35

+0

从技术上讲,数组和对象在JS中几乎是相同的(减去几个小点)。但是我肯定会提出一个请求......它使生活变得如此简单,并且意味着您可以将js转换为模板中的.js文件。 – outrunthewolf 2012-03-02 15:57:02