Php json_编码的格式化数组
我已经寻找了几天,试图拼凑出我的解决方案,但仍在挣扎。我正在努力使用一些php,并将其转换为我想要的json编码格式,以便使用knockout.js 我有一个db,看起来像这样:Php json_编码的格式化数组,php,arrays,json,Php,Arrays,Json,我已经寻找了几天,试图拼凑出我的解决方案,但仍在挣扎。我正在努力使用一些php,并将其转换为我想要的json编码格式,以便使用knockout.js 我有一个db,看起来像这样: | id | name | value | | 1 | taskName | First Task | | 1 | taskDetail | Enter your first task | | 1 | taskList | Very
| id | name | value |
| 1 | taskName | First Task |
| 1 | taskDetail | Enter your first task |
| 1 | taskList | Very Important |
| 2 | taskName | Second Task |
| 2 | taskDetail | Enter your second task |
| 2 | taskList | Important |
[
{
"id": "1",
"taskName": "First Task",
"taskDetail": "Enter your first task",
"taskList": "Very Important"
},
{
"id": "2",
"taskName": "Second Task",
"taskDetail": "Enter your second task",
"taskList": "Important"
}
]
while ($row = mysql_fetch_assoc($result))
{
if (!isset($results[$row['id']])) $results[$row['id']] = array();
$results[$row['id']][$row['name']] = $row['value'] );
}
我试图用json_encode将此响应发送到我的站点,如下所示:
| id | name | value |
| 1 | taskName | First Task |
| 1 | taskDetail | Enter your first task |
| 1 | taskList | Very Important |
| 2 | taskName | Second Task |
| 2 | taskDetail | Enter your second task |
| 2 | taskList | Important |
[
{
"id": "1",
"taskName": "First Task",
"taskDetail": "Enter your first task",
"taskList": "Very Important"
},
{
"id": "2",
"taskName": "Second Task",
"taskDetail": "Enter your second task",
"taskList": "Important"
}
]
while ($row = mysql_fetch_assoc($result))
{
if (!isset($results[$row['id']])) $results[$row['id']] = array();
$results[$row['id']][$row['name']] = $row['value'] );
}
以下是我到目前为止的情况:
$user = 1;
$task_sql = "
SELECT *
FROM `li_id`
INNER JOIN `li_details`
ON li_id.id = li_details.id
WHERE li_id.user = '" . $user . "'";
$result = mysql_query($task_sql, $con);
$results = array();
while ($row = mysql_fetch_assoc($result)) {
$results[] = array($row['name'] => $row['value']);
}
echo json_encode($results);
答复:
[
{
"taskName": "First Task"
},
{
"taskDetail": "Enter first task in application."
},
{
"taskList": "Important"
},
{
"taskName": "Second Task"
},
{
"taskDetail": "Enter second task in application."
},
{
"taskList": "Very Important"
}
]
问题是,我无法找出如何按id分组到单独的数组中。我试过好几种方法,但都不走运。任何指向其他线程的提示或方向都将非常棒。谢谢 像这样的东西怎么样:
| id | name | value |
| 1 | taskName | First Task |
| 1 | taskDetail | Enter your first task |
| 1 | taskList | Very Important |
| 2 | taskName | Second Task |
| 2 | taskDetail | Enter your second task |
| 2 | taskList | Important |
[
{
"id": "1",
"taskName": "First Task",
"taskDetail": "Enter your first task",
"taskList": "Very Important"
},
{
"id": "2",
"taskName": "Second Task",
"taskDetail": "Enter your second task",
"taskList": "Important"
}
]
while ($row = mysql_fetch_assoc($result))
{
if (!isset($results[$row['id']])) $results[$row['id']] = array();
$results[$row['id']][$row['name']] = $row['value'] );
}
然后在对其进行json_编码后,所有字段都嵌套在其id中如果表结构(数据库)不正确,是否将一个条目分成3?为何ID应该是自动递增的。为什么表结构是这样的?创建一个具有id、taskName和taskDetail属性的PHP类。在获取循环中创建此类的实例数组。序列化。我有另一个表,在添加新项时自动递增。此表中的id与这些项目相关,因此我知道每个项目应用哪些属性。格式与我发布的略有不同,但这仍然是我所需的魅力所在。非常感谢。以下是供其他人查看的结果:{“1”:{“taskName”:“First Task”,“taskDetail”:“在应用程序中输入第一个Task.”,“taskList”:“重要”},“2”:{“taskName”:“Second Task”,“taskDetail”:“在应用程序中输入第二个Task.”,“taskList”:“非常重要”}