首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将二维PHP数组编码为要在JavaScript中解码的JSON数组?

如何将二维PHP数组编码为要在JavaScript中解码的JSON数组?
EN

Stack Overflow用户
提问于 2013-09-18 14:44:13
回答 2查看 1.7K关注 0票数 1

我在php中有一个名为$searchResults的数组。$searchResults中的每个数组都是这样格式化的:

代码语言:javascript
运行
复制
array('name' => <name> , 'value' => <value>)

我希望将这个二维数组编码为JSON数组,并将其传递回我的JavaScript。我如何用PHP对这个数组进行编码,以便我可以在JavaScript中解码它,然后按键遍历每个数组?这有可能吗?我已经找到了不使用<key> => <value>语法编码多维数组的示例,但我并不确定它们是否适用。here就是一个例子。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-18 14:56:47

我看到了两种方式:

1)当前状态下的Pass数组:

代码语言:javascript
运行
复制
<?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)转换为键值对并传递:

代码语言:javascript
运行
复制
<?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。

票数 1
EN

Stack Overflow用户

发布于 2013-09-18 14:49:52

我在我的模板中使用这个:

代码语言:javascript
运行
复制
<script>window.bootstrapped_data = <?php echo json_encode($my_js_vars); ?>;</script>

呈现的输出如下所示:

代码语言:javascript
运行
复制
<script>window.bootstrapped_data = {"name":"<name>","value":"<value"};</script>

用变量名替换$my_js_vars,并任意调用JavaScript变量。然后,您可以在JavaScript中正常访问这个变量。

不要让json_encode抛下您,PHP将呈现一个有效的JavaScript对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18875371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档