【发布时间】:2012-09-15 18:06:33
【问题描述】:
如果我这样做:
$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时确实需要保留数组的键,你能告诉我如何实现第一个示例中的第二个输出吗?
【问题讨论】:
-
所以我的问题是正确的:第二个输出形式是想要的,对吧?
-
是的,我想在我的 json_encode 中保留数组键
-
“当我 json_encode 时,我真的需要保留数组的键...” 嗯,从技术上讲,你有。两个示例中的键相同。但是第一个是一个数组,另一个只是一个对象,其属性键完全由数字组成。如果解码这个 JSON 的语言是 JavaScript,这是一个非常微妙的区别(因为数组键是 JavaScript 中的字符串 -- yes, really)。其他语言可能会有所不同。
-
@T.J.Crowder 嗯,谢谢,这个 json 技术很新
标签: php json codeigniter