【发布时间】:2015-07-03 07:03:49
【问题描述】:
我是 PHP 新手,正在使用 Yii 开发应用程序。我有一个数据库对象,其中所有我得到了一个表的所有记录。我想从该对象创建一个关联数组,然后在 json_encode 中对该数组进行编码。但是,我想要的输出是对象而不是数组,并没有到来。有人可以帮忙吗?
我的代码:
$info = array();
$category = Category::find()->all();
foreach($category as $key => $value) {
$info[]= array(
"name" =>$value->name,
"value" =>$value->description
) ;
}
echo json_encode($info,JSON_FORCE_OBJECT);
输出:
{"0":{"name":"test","value":"A"},"1":{"name":"test 2","value":"B"}}
期望的输出:
{"category":[{"name":"test","value":"A"},{"name":"test 2","value":"B"}]}
【问题讨论】:
-
不想要的输出是由
JSON_FORCE_OBJECT标志引起的。 -
后者不是有效的 JSON。需要将一组匿名对象存储在
"[]"中 - 有效输出为{"info":[{"name":"test","value":"A"},{"name":"test 2","value":"B"}]}。不过,解析现有输出应该非常容易。每个对象都被正确编码,它只是映射到原始数组索引。 -
@SteveK 你是对的,只是查看了我的要求。我刚刚编辑了这个问题。你能看看并告诉我怎么做吗,请?
-
谢谢大家,我刚刚找到了我要找的东西。