我已经建立从MySQL结果正确的阵列预期JSON格式的一个问题:构建阵列格式JSON
表:
CREATE TABLE `Config_Category` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL DEFAULT '0', `topid` INT(8) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ;
填写表格:
id name topid 2 DVD 1 3 Matrix 2 4 CD 1 5 Deep Purple 4 6 Pink Floyd 4 7 Batman 2
MyClass
{
public function getMenu($topid)
{
$stmt = $this->pdoDash->query("SELECT id,name
FROM Config_Category WHERE topid='$topid'");
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $row)
{
if ($this->hasChildKats($row['id']))
{
$path[] = array("group" => $row['name']);
$path[] = array_merge($this->getMenu($row['id'], $path));
} else
{
$path["item"][] = array("name" => $row['name']);
}
}
return $path;
}
private function hasChildKats($katID)
{
$stmt = $this->pdoDash->query("SELECT count(*)
FROM Config_Category WHERE topid='$katID'");
return $stmt->fetchColumn();
}
}
$this->test = new MyClass;
echo json_encode($this->test->getMenu());
我的结果:
[
{
"group": "DVD"
},
{
"item": [
{
"name": "Matrix"
},
{
"name": "Batman"
}
]
},
{
"group": "CD"
},
{
"item": [
{
"name": "Pink Floyd"
},
{
"name": "Deep Purple"
}
]
}
]
预期的结果:
[
{
"group": "DVD",
"item": [
{
"name": "Matrix"
},
{
"name": "Batman"
}
]
},
{
"group": "CD",
"item": [
{
"name": "Pink Floyd"
},
{
"name": "Deep Purple"
}
]
}
]
计数器不招。 组名将不会显示在输出中 – UsaNaim 2014-11-26 20:59:48