Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript将我的嵌套数组视为一个对象_Javascript_Php_Arrays - Fatal编程技术网

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); 这是我用来构建嵌套数组的代

我正在尝试向Javascript发送一个嵌套的PHP数组。但是Javascript将顶层解析为对象

$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,现在一切正常。