[英]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.