javascript - 如何将二维 PHP 数组编码为 JSON 数组以便在 JavaScript 中解码?

标签 javascript php ajax json

我在 php 中有一个名为 $searchResults 的数组。 。 $searchResults 内的每个数组格式如下:

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

我想将此二维数组编码为 JSON 数组并将其传递回我的 JavaScript。如何在 PHP 中对该数组进行编码,以便可以在 JavaScript 中对其进行解码,然后按键迭代每个数组?这可能吗?我发现了不使用 <key> => <value> 编码多维数组的示例语法,但我不太确定这些是否适用。一个例子是 here 。谢谢!

最佳答案

我看到两种方法:

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功能。

关于javascript - 如何将二维 PHP 数组编码为 JSON 数组以便在 JavaScript 中解码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18875371/

相关文章:

循环中的 Javascript 提示替代

javascript - 如何从工具提示访问特定数据值 - Chart.js

javascript - 按 HTML 元素的标签 ID 对 HTML 元素进行排序

php - 使用 Slim Framework 原生的 Cartalyst Sentinel 的激活问题

javascript - 在一定数量的字符后附加 'Read More' 链接并隐藏其余字符

javascript - 当我点击同一页面的元素时如何加载不同的文本?

php - PHP 中的服务器端级联下拉菜单

javascript - jQuery live 函数不能很好地运行

ajax - JQuery - 迭代 JSON 响应

javascript - 为什么我不能执行 .ajax ( return data; )? jQuery