jquery json多维数组长度

jquery json多维数组长度,jquery,arrays,json,Jquery,Arrays,Json,我使用jQuery ajax json调用将三维PHP数组检索到Javascript中。 PHP数组如下所示: $rate[0][1]['name'] = 'guff'; $rate[0][1]['value'] = 'puff'; $rate[0][2]['name'] = 'guff'; $rate[0][2]['value'] = 'puff'; $rate[0][3]['name'] = 'guff'; $rate[0][3]['value'] =

我使用jQuery ajax json调用将三维PHP数组检索到Javascript中。 PHP数组如下所示:

$rate[0][1]['name'] = 'guff'; $rate[0][1]['value'] = 'puff'; $rate[0][2]['name'] = 'guff'; $rate[0][2]['value'] = 'puff'; $rate[0][3]['name'] = 'guff'; $rate[0][3]['value'] = 'puff'; $rate[1][1]['name'] = 'guff'; $rate[1][1]['value'] = 'puff'; $rate[1][2]['name'] = 'guff'; $rate[1][2]['value'] = 'puff'; jQuery似乎在转换外部数组,因此
rates.length
给了我一个值。但是不转换子数组,因此
速率[9]。未定义长度

我已尝试在数组中循环以手动转换它:

$(rates).each(function(i) { rates[i] = jQuery.makeArray($(this)); console.log(rates[i].length); }); 美元(费率)。每个功能(i){ rates[i]=jQuery.makeArray($(this)); console.log(速率[i].长度); }); 但当我知道有负载时,我得到的值是1

下面是json字符串的示例:

[{"1":{"name":"Single-trip base loading","value":"10","default":"0"},"2":{"name":"Multi-trip base loading","value":"50","default":"0"}},{"1":{"name":"City break","value":"70","default":"0"},"2":{"name":"Sun and sand","value":"75","default":"0"},"3":{"name":"Backpacker","value":"90","default":"0"},"4":{"name":"Horse riding","value":"120","default":"0"},"5":{"name":"Safari","value":"80","default":"0"},"6":{"name":"Golf","value":"85","default":"0"},"7":{"name":"Surf and sail","value":"140","default":"0"},"8":{"name":"Road runner","value":"130","default":"0"},"9":{"name":"Flotilla","value":"150","default":"0"},"10":{"name":"Offshore sailor","value":"200","default":"0"},"11":{"name":"Kite surfer","value":"300","default":"0"}}] [{“1”:{“名称”:“单程基本负荷”,“值”:“10”,“默认值”:“0”},“2”:{“名称”:“多程基本负荷”,“值”:“50”,“默认值”:“0”},{“1”:{“名称”:“城市中断”,“值”:“70”,“默认值”:“0”},“2”:{“名称”:“太阳和沙子”,“值”:“75”,“默认值”:“0”},“3”:{“名称”:“背包客”,“值”:“90”,“默认值”:“0”},“4”:“名称”:“骑马”,“值”:“120”,“默认值”:”“0”},“5”{“姓名”:“狩猎”、“价值”:“80”、“默认”:“0”},“6”{“姓名”:“高尔夫”、“价值”:“85”、“默认”:“0”},“7”{“姓名”:“冲浪和航行”、“价值”:“140”、“默认”:“0”},“8”{“姓名”:“公路奔跑者”、“价值”:“130”、“默认”:“0”},“9”{“姓名”:“船队”、“价值”:“150”、“默认”:“0”},“10”{“海上水手”、“价值”:“200”、“默认”:“0”},“0”{“姓名”:“11”{风筝冲浪者,“值”:“300”,“默认值”:“0”}] 任何想法,帮助都会很好。我对json/ajax/jQuery非常陌生。您可以从我的代码中看出

干杯


rob.

在PHP中,如果不以索引
0
启动数组,它将被视为关联数组。然后,当使用JSON_encode方法时,它将成为JSON中的对象

您可以对代码进行许多优化,但由于您只是举了一个例子,所以我假设您真正的代码还有很多改进

这与您提供的代码相同,现在只有第二层元素上的索引从零开始,而不是从一开始

$rate[0][0]['name'] = 'guff';
$rate[0][0]['value'] = 'puff';
$rate[0][1]['name'] = 'guff';
$rate[0][1]['value'] = 'puff';
$rate[0][2]['name'] = 'guff';
$rate[0][2]['value'] = 'puff';
$rate[1][0]['name'] = 'guff';
$rate[1][0]['value'] = 'puff';
$rate[1][1]['name'] = 'guff';
$rate[1][1]['value'] = 'puff';
通过
json\u encode
传递它会产生以下结果:

[[{"name":"guff","value":"puff"},{"name":"guff","value":"puff"},{"name":"guff","value":"puff"}],[{"name":"guff","value":"puff"},{"name":"guff","value":"puff"}]]

您可以看到,第二级元素仍然是JSON中的数组(
[]
),而不是对象(
{}
).

请将您的代码放在-Tags中。json看起来像什么?可能是您的问题在PHP方面?您能告诉我们
ajax\u load\u rates.PHP
发送回javascript的json字符串是什么吗?从db调用创建数组后,我会回显json\u encode($rates);我在问题中添加了一部分json字符串……对于注释来说太长了。我所说的一个优化就是这样推到数组中的
$rate[]=$second_array
甚至
$rate[0][]=array('name'=>'guff','value'=>'puff')
,避免直接设置大多数索引。
[[{"name":"guff","value":"puff"},{"name":"guff","value":"puff"},{"name":"guff","value":"puff"}],[{"name":"guff","value":"puff"},{"name":"guff","value":"puff"}]]