如果我这样做:不同结果json_encode()PHP
$new_arr = array(
0 => 'keyboard',
1 => 'mouse',
2 => 'computer'
);
print_r(json_encode($new_arr));
输出:
[ “键盘”, “鼠标”, “计算机”]
但说我从我的数据库获取“产品”表的所有行,我这样做:
$product_with_id_map = array();
foreach($query as $result) {
$product_with_id_map[$result->id] = $result->name;
}
print_r(json_encode($product_with_id_map));
输出:
{ “0”: “键盘”, “1”: “鼠标”, “2”: “计算机”}
我确实需要保持的密钥数组当我json_encode也可以告诉我如何实现第一个例子中的第二个输出?
只是让我的问题正确:第二个输出形式是所需的,对吧? – vzwick
yes确切地说,我想保留数组键在我的json_encode –
*“我真的需要保留阵列的关键,当我json_encode ...”*呃,从技术上说,你有。两个例子中的键都是相同的。但第一个是一个数组,另一个只是一个完全由数字组成的属性键的对象。如果解码这个JSON的语言是JavaScript,这是一个非常微妙的差异(因为数组键是JavaScript中的字符串 - [是,真的](http://blog.niftysnippets.org/2011/01/myth-of-arrays。 HTML))。其他语言可能不同。 –