簡體   English   中英

如何將二維PHP數組編碼為JSON數組,以在JavaScript中解碼?

[英]How do you encode a two dimensional PHP array as a JSON array to be decoded within JavaScript?

我在php中有一個名為$searchResults的數組數組。 $searchResults每個數組的格式如下:

array('name' => <name> , 'value' => <value>)

我想將此二維數組編碼為JSON數組,並將其傳遞回我的JavaScript。 如何在PHP中對該數組進行編碼,以便可以在JavaScript中對其進行解碼,然后通過鍵對每個數組進行迭代? 這有可能嗎? 我發現了不使用<key> => <value>語法對多維數組進行編碼的示例,但我不確定這些是否適用。 這里有一個例子。 謝謝!

我看到兩種方式:

1)在當前狀態下傳遞數組:

<?php
$array = [
    [ 'name' => 'x' , 'value' => 1 ],
    [ 'name' => 'y' , 'value' => 2 ],
    [ 'name' => 'z' , 'value' => 3 ]
];
?>

<script type="text/javascript">
var php_json = <?php echo json_encode($array); ?>;

for(var i = 0; i < php_json.length; i++){
    console.log(php_json[i]);
}
</script>

2)轉換為鍵值對並傳遞:

<?php
$array = [
    [ 'name' => 'x' , 'value' => 1 ],
    [ 'name' => 'y' , 'value' => 2 ],
    [ 'name' => 'z' , 'value' => 3 ]
];

$buffer = [];

foreach($array as &$nested){
    $buffer[$nested['name']] = $nested['value'];
}
?>

<script type="text/javascript">
var php_json = <?php echo json_encode($buffer); ?>;

for(var key in php_json){
     console.log(key, php_json[key]);
     //       key ^      ^ value
}
</script>

您可以使用json_encode()函數輕松地將任何簡單的php數據結構傳遞給javascript。

我在模板中使用它:

<script>window.bootstrapped_data = <?php echo json_encode($my_js_vars); ?>;</script>

渲染的輸出將如下所示:

<script>window.bootstrapped_data = {"name":"<name>","value":"<value"};</script>

$my_js_vars替換$my_js_vars您的變量名,然后根據需要調用JavaScript變量。 然后,您可以在JavaScript中正常訪問此變量。

不要讓json_encode讓您json_encode ,PHP會渲染一個有效的JavaScript對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM