繁体   English   中英

如何将2维PHP数组编码为Javascript数组?

[英]How to encode 2 dimentional PHP array to Javascript Array?

这是我的问题,我有一个像这样的PHP数组:

$output = array(array(1,1,1,1),array(2,2,2,2),array(3,3,3,3));

在将数组编码为json后,我得到了这个:

$output = {"1":[1,1,1,1],"2":[2,2,2,2],"3":[3,3,3,3]}

我想要的是将PHP数组传递给Javascript,以便JS看起来像这样:

var output = [[1,1,1,1],[2,2,2,2],[3,3,3,3,]];

提前致谢...

您使用的是哪个版本的PHP?

使用PHP 5.2.10,我得到你所要求的:

$output = array(array(1,1,1,1),array(2,2,2,2),array(3,3,3,3));
$json = json_encode($output);

echo $json . "\n";

产出:

$ php temp.php
[[1,1,1,1],[2,2,2,2],[3,3,3,3]]


至少,这是没有JSON_FORCE_OBJECT选项 - 在PHP 5.3中添加


也许你可以在json_encode手册页上的用户注释中找到一些有趣的东西?

例如, simoncpu说

需要注意的是:如果您想知道为什么json_encode()将您的PHP数组编码为JSON对象而不是JSON数组,您可能需要仔细检查数组键,因为json_encode()假定您的数组是对象(如果您的键)不顺序。

如果你在PHP的bugtracker上搜索json_encode + array + object ,也许你会得到一些有趣的结果?
(例如,有人说这是一个错误,在最近的PHP版本中已经纠正过?)

您的原始解决方案适合我:

adam@fsck:~:0$ php -r 'echo json_encode(array(array(1,1,1,1),array(2,2,2,2),array(3,3,3,3)));'
[[1,1,1,1],[2,2,2,2],[3,3,3,3]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM