2013-08-05 106 views
0

我有一個php多維數組,我發送給jquery,但我需要自動創建數組。從php多維數組在jQuery中創建數組

所有實施例顯示設置的手動陣列像這樣:

var theme_name = current_theme_meta.theme_name, 
    theme_version = current_theme_meta.version, 
    data0A  = theme_metadata[0].dataA, 
    data0B  = theme_metadata[0].dataB, 
    data1A  = theme_metadata[1].dataA, 
    data1B  = theme_metadata[1].dataB; 

current_theme_meta和theme_metadata是在PHP數組鍵我建立和我經由wp_localize_script()推到jQuery的

(WordPress的函數。)

theme_name,version,dataA和dataB是數組內的關鍵值。

我的數組是這樣的:

[current_theme_meta] => Array 
    (
     [theme_name] => A Cool Theme 
     [version] => 2.1.1 
    ) 

[theme_meta] => Array 
    (
     [0] => Array 
      (
       [dataA] => foo 
       [dataB] => bar 
      ) 

     [1] => Array 
      (
       [dataA] => this 
       [dataB] => that 
      ) 
    ) 

如何創建jQuery的數組?我很困惑每個和循環等

回答

1

一個快速簡便的方法來做到這一點將是編碼您的PHP陣列爲JSON使用json_encode,然後將其傳遞到您的JavaScript。

一個例子是:

<?php 
    //Create & populate your PHP array 
    $my_php_array = array(
     'foo' => 'bar', 
     'test' => array(
       'abc' => '123' 
      ) 
    ); 
?> 

<script type="text/javascript"> 
    var my_javascript_object = JSON.parse("<?php echo json_encode($my_php_array); ?>"); 
</script> 

之後,你就可以訪問你的JavaScript對象,例如:

<script type="text/javascript"> 
    alert(my_javascript_object.foo); 
    alert(my_javascript_object.test.abc); 
</script> 
+0

這聽起來像最簡單的方法...所以我基本上不需要在jquery一側設置數組,因爲key =>值將被傳遞,我可以調用鍵/值對。謝謝,我會玩弄如何從WordPress內部傳遞數組作爲json。 – Jason

+0

是的,就是這樣。您將在PHP中執行所有數組構建/操作,並將完成的數組作爲JSON字符串傳遞,然後由JavaScript將其解析爲對象。 –

1

json_encode在PHP,然後解析JSON在你的jQuery:

$json = json_encode($your_array); 

然後訪問它,並在你的Javascript中解析它:

var yourArray = JSON.parse('<?php echo $json ;?>'); 

類似於XML的JSON對於在語言之間交換數據很有用,因爲大多數語言都內置了處理它的函數 - 正如您在本例中所看到的。