【发布时间】:2013-05-01 10:40:22
【问题描述】:
我正在使用 PHP 创建一个非常大的多维数组。每个对象都包含名称、ID、ParentID 和 Children。子项是具有相同格式的多个对象的数组。
命名每个对象的 ID 很重要——这有助于我将每个对象放在正确的父对象下。 (在下面的代码中,我使用 101、102 等)
但是,我遇到的问题是当我使用json_encode 以 JSON 格式返回数组时。每个 'Children' 数组都被打印为一个对象,而不是一个数组 - 如下面的 JSON 代码所示。
正如我在另一个 SO 线程 here 上所读到的,它们“由于包含字符串键而被制成对象”——尽管它们是数字,但它们仍然是字符串。
{
"101": {
"ID": "101",
"ParentID": "0",
"Name": "Root One"
"Children": {
"102": {
"ID": "102",
"ParentID": "101",
"Name": "Child One"
},
"103": {
"ID": "103",
"ParentID": "101",
"Name": "Child Two",
"Children": {
"104": {
"ID": "104",
"ParentID": "103",
"Name": "Child Child One"
}
}
},
有人知道如何解决这个问题吗?
编辑: JSON 应该如下所示(方括号很重要!):
[
{
"ID": "101",
"ParentID": "0",
"Name": "Root One",
"Children": [
{
"ID": "102",
"ParentID": "101",
"Name": "Child One",
"Children": [
【问题讨论】:
-
实际上是因为索引不连续,即有间隙。
-
另外,你的“孩子”是对象(从我的角度来看)而不是数组。高兴,让 OOP 在你的内心流动。
标签: php multidimensional-array json