1

因此,我试图找出将 MySql 表数据转换为多维 PHP 数组或将该多维数组转换为 json 字符串的最佳方法。

本质上,我想要做的是有一个 php 包含返回 JSON 字符串,这样我就可以遍历它。我需要一个具有多个值的键,所以我不能 100% 确定我朝着正确的方向前进。

我想为同一个键分配多个值,例如:

[{"key1": "package1", "package2", "package3"}, {"key2": "package1", "package2", "package3", "package4"}]

我认为这行不通吗?因为我没有任何类型的索引?

4

2 回答 2

4

那不是有效的 JSON。您正在寻找的结构将类似于:

[
 {"key1": ["package1", "package2", "package3"]},
 {"key2": ["package1", "package2", "package3", "package4"}]
          ^ An array as the value to the key "key1", "key2", etc..
]

在 PHP 方面,您需要类似以下内容:

  1. 对于从 MySQL 获取的每一行
    • $arr[$key]= <新数组>
    • 对于每个包裹:
      • 将包附加到$arr[$key]
  2. 回声json_encode($arr)
于 2012-11-03T04:19:44.873 回答
1

JS 数组有一个隐式数组键控,从索引 0 开始。你得到的是一个完全有效的 JS 数组,相当于写了:

var x = []; // create new empty array
x[0] = {"key1": .... }; // first object
x[1] = {"key2": ....} // second object

请注意,您的{}子对象的内容无效。

您永远不应该手动构建 JSON 字符串。它太不可靠而且容易搞砸。使用本机数据结构(php数组/对象)更容易,然后使用json_encode()它们。在该过程的另一端同上 - 不要手动解码字符串。转换为原生数据结构(例如json_decode(), JSON.parse()),然后直接处理原生结构。

本质上,JSON 是一种传输格式,而不是一种操作格式。

于 2012-11-03T04:19:35.077 回答