Javascript将我的嵌套数组视为一个对象
我正在尝试向Javascript发送一个嵌套的PHP数组。但是Javascript将顶层解析为对象Javascript将我的嵌套数组视为一个对象,javascript,php,arrays,Javascript,Php,Arrays,我正在尝试向Javascript发送一个嵌套的PHP数组。但是Javascript将顶层解析为对象 $test = array( 0 => 'test' ); echo json_encode($test); Teams数组应该包含另外两个数组,每个数组有两个团队名称 正如您在屏幕截图和json中看到的,“团队”是一个对象 $test = array( 0 => 'test' ); echo json_encode($test); 这是我用来构建嵌套数组的代
$test = array(
0 => 'test'
);
echo json_encode($test);
Teams数组应该包含另外两个数组,每个数组有两个团队名称
正如您在屏幕截图和json中看到的,“团队”是一个对象
$test = array(
0 => 'test'
);
echo json_encode($test);
这是我用来构建嵌套数组的代码
$iterator = 0;
for($i = 0; $i < $competition->teams->count(); $i++) {
if($i % 2 == 0) {
$iterator++;
}
$data["teams"][$iterator][] = "test";
}
$iterator=0;
对于($i=0;$i<$competition->teams->count();$i++){
如果($i%2==0){
$iterator++;
}
$data[“teams”][$iterator][]=“test”;
}
有趣的是,当数组不是多维数组时,它就工作了。
例如,以下示例不将团队作为对象返回
$test = array(
0 => 'test'
);
echo json_encode($test);
我猜,如果我删除数组键,它可能会工作,但不可能有一个没有数组键的嵌套数组,对吗
知道我做错了什么吗?以及如何让Javascript只查看嵌套数组而不将其视为对象。
谢谢大家! 您的代码有一个问题,
$iterator
总是以值1
开头,因此json\u encode
函数使用json对象来保留该索引
当您从0
开始索引数组时,一切都会发生变化
$test = array(
1 => 'test'
);
echo json_encode($test);
显示对象的{“1”:“test”}
$test = array(
0 => 'test'
);
echo json_encode($test);
显示
[“test”]
这是一个数组。您的代码有一个问题,$iterator
总是以值1
开始,因此json\u encode
函数使用json对象来保留该索引
当您从0
开始索引数组时,一切都会发生变化
$test = array(
1 => 'test'
);
echo json_encode($test);
显示对象的{“1”:“test”}
$test = array(
0 => 'test'
);
echo json_encode($test);
显示
[“test”]
这是一个数组。请将对象作为带间隔符的JSON字符串添加到问题中。“带间隔符”是什么意思?我应该在代码中包含完整的json吗?它在这里被命名为space
,它以文本形式提供了良好的可读对象结构。请将对象添加为带间隔符的json字符串。带间隔符的“是什么意思?我应该在代码中包含完整的json吗?它在这里被命名为space
,它以文本形式提供了良好的可读性对象结构。哇!你说得对,将$iterator更改为-1,现在一切都正常了。哇!您是对的,将$iterator更改为-1,现在一切正常。