gpt4 book ai didi

javascript - 带数组的 JSON

转载 作者:行者123 更新时间:2023-12-03 00:31:48 25 4
gpt4 key购买 nike

我正在尝试使用 JSON 对象从 PHP 返回两个数组。

这是我的 PHP 代码:

$return = array();
$return += array('val1' => '1',
'val2' => '2',
'val3' => '3');
$tab = array();
for($i=0; $i<3; $i++)
{
$val = "table1 " . $i;
array_push($tab, array('tab1' => $val));
}
$return += $tab;

$tab = array();
for ($i = 0; $i < 5; $i++) {
$val = "table2 " . $i;
array_push($tab, array('tab2' => $val));
}
$return += $tab;
echo json_encode($return);

这是我的 JS 代码:

console.log("val1=" + data.val1);
console.log("val2=" + data.val2);
console.log("val3=" + data.val3);
for(var i=0; i<3; i++)
console.log("tab1_" + i + "=" + data[i].tab1);
for (var i = 0; i < 5; i++)
console.log("tab2_" + i + "=" + data[i].tab2);

这是我在控制台上得到的内容:

val1=1
val2=2
val3=3
tab1_0=table1 0
tab1_1=table1 1
tab1_2=table1 2
tab2_0=undefined
tab2_1=undefined
tab2_2=undefined
tab2_3=undefined
tab2_4=undefined

为什么我无法将数组添加到 JSON 对象?我究竟做错了什么?感谢您的帮助。

最佳答案

组合数组时,++= 运算符通常无法按预期工作。如果第二个数组中的键已经存在于第一个数组中,则它们将被跳过。您的两个 $tab 数组都有键 0、1 和 2,因此它们没有被添加。相反,改变

$return += $tab;

$return = array_merge($return, $tab);

最终应该是这样的:

$return = array();
$return += array('val1' => '1',
'val2' => '2',
'val3' => '3');

$tab = array();
for($i=0; $i<3; $i++)
{
$val = "table1 " . $i;
array_push($tab, array('tab1' => $val));
}
$return = array_merge($return, $tab);

$tab = array();
for ($i = 0; $i < 5; $i++) {
$val = "table2 " . $i;
array_push($tab, array('tab2' => $val));
}
$return = array_merge($return, $tab);

echo json_encode($return);

结果应该是你所期望的:

    {
"0": {
"tab1": "table1 0"
},
"1": {
"tab1": "table1 1"
},
"2": {
"tab1": "table1 2"
},
"3": {
"tab2": "table2 0"
},
"4": {
"tab2": "table2 1"
},
"5": {
"tab2": "table2 2"
},
"6": {
"tab2": "table2 3"
},
"7": {
"tab2": "table2 4"
},
"val1": "1",
"val2": "2",
"val3": "3"
}

关于javascript - 带数组的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53831622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com