我正在尝试将嵌套的PHP数组发送到Javascript。但Javascript将顶层解析为对象。
团队数组应包含2个其他数组,每个团队名称为2个
正如您在屏幕截图和json中看到的那样,“团队”是一个对象。
"teams":{"1":["test","test"],"2":["test","test"]},"results":[]}
这是我用来构建嵌套数组的代码
$iterator = 0;
for($i = 0; $i < $competition->teams->count(); $i++) {
if($i % 2 == 0) {
$iterator++;
}
$data["teams"][$iterator][] = "test";
}
有趣的是,当数组不是多维时,它正在工作。 例如,以下示例不会将团队作为对象返回。
我猜我是否删除它可能有效的数组键,但是没有数组键的嵌套数组是不可能的,对吧?
谢谢!
答案 0 :(得分:4)
您的代码存在一个问题,$iterator
始终以值1
开头,因此json_encode
函数使用JSON对象来保留该索引。
当您开始从0
索引数组时,所有内容都会发生变化。
$test = array(
1 => 'test'
);
echo json_encode($test);
显示作为对象的{"1":"test"}
。
$test = array(
0 => 'test'
);
echo json_encode($test);
显示["test"]
这是一个数组。