关联数组转换为JSON

14

我想要能够生成以下格式的JSON输出:

{"a":{"ax":1,"abx":2},"b":{"bax":1,"bbx":2},"c":3,"d":4,"e":5}

虽然我已经找到了相应的代码,如下:

$arr = array('a' => array('ax' => 1, 'abx' => 2), 'b' => array('bax' => 1, 'bbx' => 2), 'c' => 3, 'd' => 4, 'e' => 5);

我正在尝试使用SQL查询的数据来生成此输出,但遇到了困难。 我已经尝试过array_push()array_merge(),最接近的结果是:

[{"a":{"ax":1,"abx":2}},{"b":{"bax":1,"bbx":2}}, ....]

我该怎么做?


4
文档:阅读它、喜欢它、使用它。 - user554546
你是在问如何将SQL查询结果格式化为PHP数组,还是在问如何使用json_encode - John Flatness
1
展示你的编码尝试。你是否尝试过简单地使用$output["L"] = $sql_result;而不是array_push - mario
嗯,你可以从数据库获取行数组,然后对其使用 json_encode。问题不是很清楚。 - Nicolás Torres
2个回答

23

首先,您应该从表中查询所有数据,然后将其移动到一个数组中。之后,使用 json_encode($array) 函数。

将您的数组放置在参数中。

然后输出将以 JSON 格式呈现。

$query = "select *  from employees";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
  $employee = $row['employee'];
  $country = $row['country'];

  $employees[] = array('employee'=> $employee, 'country'=> $country);
}

echo $jsonformat = json_encode($employees);

3

将您想要编码的数据加载到数组中,然后使用json_encode()

json_encode($arr);

2
OP 可能已知道该函数。问题在于解释 $arr 变量的含义。 - mario
5
“OP(原帖发布者)可能知道那个函数。” “抗议,法官大人!假定未经证实的事实!”“支持抗议。” - user554546
手铐!将罪犯送入手动监狱。全体陪审团一致决定! - mario
1
我的问题是json_encode引入了[],似乎它们正在干扰我的代码。有没有办法摆脱它们? - Nick
1
这是有效的 JSON。如果有效的 JSON 影响了您的代码,那么您需要重新考虑您正在做什么。可能有更好的方法。 - None

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接