很诡异呀,相同类型的数组编码后却是不同类型的json
$a = array (0 => array ( 'name' => 0, 'value' => 0.62,),1 => array ( 'name' => 1, 'value' => 1.23,),2 => array ( 'name' => 2, 'value' => 0.35,),3 => array ( 'name' => 3, 'value' => 0.8,),4 => array ( 'name' => 4, 'value' => 0.35,),5 => array ( 'name' => 5, 'value' => 1.37,));$b = array (0 =>
array (
'name' => 0,
'value' => 1.15,
),
1 =>
array (
'name' => 1,
'value' => 1.16,
),
2 =>
array (
'name' => 2,
'value' => 1.03,
),
3 =>
array (
'name' => 3,
'value' => 1.72,
),
4 =>
array (
'name' => 4,
'value' => 1.31,
),
6 =>
array (
'name' => 6,
'value' => 0.93,
));
echo json_encode($a);
echo '<br><br>';
echo json_encode($b);
明显发现两个json有很大的不同,知道原因的还请说一下.
百撕不得骑姐 序号问题,数组B你的下标把6改成5就可以了 第二个数组比第一个数组少了一个索引5,所以编码后的json不同,可以用array_value重新排列一下,这样生成的json就是一样的了.谢谢罪恶和seven的提醒和帮助.可以结贴了. 一个是作为array输出一个是作为object输出的区别罢了 php.net有例子解释的 与下标有关,以下是我总结出来的:
// json_encode() JSON 输出规律: 从0开始的‘顺序’数字key结果前台解析为数组;从0开始不连续数字key或从非零开始的无论连续数字key或者字符key则前台解析为标准对象
$t = array(
1 => array('name'=>'bb'),
2 => array('name'=> 'bc')
);
echo json_encode($t); // 输出 {"1":{"name":"bb"},"2":{"name":"bc"}}
$t = array(
0 => array('name'=>'bb'),
2 => array('name'=> 'bc')
);
echo json_encode($t); // {"0":{"name":"bb"},"2":{"name":"bc"}}
$t = array(
0 => array('name'=>'bb'),
1 => array('name'=> 'bc')
);
echo json_encode($t); // [{"name":"bb"},{"name":"bc"}]
$t = array(
'0' => array('name'=>'bb'),
'1' => array('name'=> 'bc')
);
echo json_encode($t); // [{"name":"bb"},{"name":"bc"}]
$t = array(
'A' => array('name'=>'bb'),
'b' => array('name'=> 'bc')
);
echo json_encode($t); // {"A":{"name":"bb"},"b":{"name":"bc"}}
上面的各位大神是正确的哦 mark35 发表于 2013-7-3 17:12 static/image/common/back.gif
与下标有关,以下是我总结出来的:
谢谢了
页:
[1]